thisform.ctabla=ALLTRIM(this.Value)
Thisform.grid1.RecordSource = ""
*!* MESSAGEBOX("Evento Click: "+CHR(13)+;
*!* "Directorio: "+pRuta+CHR(13)+;
*!* "Nombre del Archivo: "+thisform.cTabla)
IF ! USED ( (thisform.cTabla) )
*WAIT WINDOW "No existe en el Data"
USE pRuta+(thisform.cTabla) IN 0 EXCLUSIVE
ENDIF
SELECT (Thisform.cTabla)
*brow
gnFieldcount = AFIELDS(gaMyArray) && Create array
FOR nCount = 1 TO gnFieldcount
*!* ? gaMyArray(nCount,1) && Display field names
ENDFOR
Thisform.nColumnas = nCount-1
*WAIT WINDOW STR(Thisform.ncolumnas)
*select *from (thisform.cTabla) into cursor MiCursor
WITH thisform.grid1
.RecordSource=(Thisform.cTabla)
.AutoFit
.Refresh
ENDWITH
thisform.grilla
WITH thisform.grid1
.ColumnCount = Thisform.nColumnas
.FontSize = 8
.FontName = 'Tahoma'
.HeaderHeight = 24
.RowHeight = 18
.autoFit
ENDWITH
Estimado amigo Saúl
Este es el codigo que utilizo para mostrar tabla en grid...
recordando que el grid se alimenta de cualquier tabla, es por ello que se obtiene el Alias de la tabla desde una propiedad del form
thisform.ctabla=ALLTRIM(this.Value)
Thisform.grid1.RecordSource = ""
*!* MESSAGEBOX("Evento Click: "+CHR(13)+;
*!* "Directorio: "+pRuta+CHR(13)+;
*!* "Nombre del Archivo: "+thisform.cTabla)
IF ! USED ( (thisform.cTabla) )
*WAIT WINDOW "No existe en el Data"
USE pRuta+(thisform.cTabla) IN 0 EXCLUSIVE
ENDIF
SELECT (Thisform.cTabla)
gnFieldcount = AFIELDS(gaMyArray) && Create array
FOR nCount = 1 TO gnFieldcount
*!* ? gaMyArray(nCount,1) && Display field names
ENDFOR
Thisform.nColumnas = nCount-1
*WAIT WINDOW STR(Thisform.ncolumnas)
*select *from (thisform.cTabla) into cursor MiCursor
WITH thisform.grid1
.RecordSource=(Thisform.cTabla)
.AutoFit
.Refresh
ENDWITH
thisform.grilla
thisform.mitabla = EVL(thisform.mitabla,"CLIENTES")
* Automático
WITH thisform.grid1
.recordSource = ""
.columncount = -1
.REcordsource = thisform.mitabla
.refresh
ENDWITH
* Asignando manualmente
thisform.mitabla = EVL(thisform.mitabla,"CLIENTES")
lnFields = AFIELDS(laFields,thisform.mitabla)
WITH thisform.grid1
.recordSource = ""
.columncount = lnFields
.REcordsource = thisform.mitabla
FOR i = 1 TO m.lnFields
.Columns(i).Header1.Caption=PROPER(laFields[i,1])
.Columns(i).ControlSource= thisform.mitabla+"."+laFields[i,1]
ENDFOR
.refresh
ENDWITH Sobre el comando USE.
"When used with a noncurrent database, the USE command opens the database automatically but does not set the database as the current database. When the table closes, the database remains open."
SET DATABASE TO [DatabaseName]En mi caso, usaba un comando browse sin indicar campos, te trae todo. No es prolijo pero efectivo.
Saludos: Carlos Miguel FARIAS