Usuario
cargar los nombres de los campos de una tabla en visual basic 6.0

Pregunta
-
Tengo el siguiente codigo, quiero que los nombres de los campos aparezcan en el combo para manejar mejor mis filtros en vb 6.0
Haber si alguien me da la solucion
Private Sub Form_Load()
' ConnectionString
Adodc1.ConnectionString = "Provider=MSDASQL.1;Persist Security Info=False;Data Source=server”
With Adodc1
.CommandType = adCmdText
.RecordSource = "Select * From oficina"
.Refresh
Set DataGrid1.DataSource = Adodc1.Recordset
.Visible = False
End With
With Combo1
Combo1.Text = "Oficina"
End With
Text1 = ""
maculdes
Todas las respuestas
-
Hola, puedes utilizar algo como esto:
Private Sub CargaCampos
Dim Field As ADODB.Field
Dim Cnn as New ADODB.Connection
Dim rst As New ADODB.Recordset
Cnn.ConnectionString = "Provider=MSDASQL.1;Persist Security Info=False;Data Suource=server”
Cnn.Open
rst.CursorLocation = adUseServer
rst.Open "Oficina", Cnn, adOpenStatic, adLockReadOnly
Combo1.ClearFor Each Field In rst.Fields
Combo1.addItem Field.Name
Next
rst.Close
Cnn.Close
Set rst = Nothing
Set Cnn = Nothing
End SubSaludos,
Javier J
-
Hola, intenta con funcion openschema del objeto conecion(ADO) que devuelve un RecordSet; lo que hace es obtener informacion de la BD como por ejemplo las tablas,campos,indices entre otros.
usa esta rutina:
Set rs=conecion.openschema(adSchemaColumns,array("TuBD","TuUser","TuTabla"))
while not rs.eof
combo.additem rs(0)
rs.movenext
end while
PD:Los parametros del openschema varian entre motores de BD.
Suerte...
- Propuesto como respuesta Jymmy J. Torres lunes, 7 de noviembre de 2011 6:37
-
consulta adicional
tengo un datagrid que muestra la informacion de una tabla, como puedo exportarlo por segmento: ejemplo. el datagrid muestra la informacion de clientes de un pais. (nombre, apellido,telefono,compra,distrito,ciudad)y yo quiero exportarlo segun campo. si pondo distrito que exporte todos los datos pero en libros distintos es decir por cada distrito un libro.
maculdes -
Cuando dices exportar te refieres a excel no?
Bueno tienes que referenciar las librerias de excel a tu proyecto (Microsoft Excel 12.0 Object Library) dependiendo de que version de office tengas la version varia.
luego creas la aplicacion excel y añades las hojas asi:
Public Function CrearExcel() As Boolean Dim I As Integer Dim J As Integer Set objExcel = New EXCEL.Application objExcel.Visible = False 'lo hacemos invisible objExcel.SheetsInNewWorkbook = 1 'decimos cuantas hojas queremos en el nuevo documento objExcel.Workbooks.Add ' añadimos el objeto al workbook End Function
luego solo usas un bucle con las consultas.
y asignas valores creando variables para tus filas y columnas lo mismo como si trabajases con matrices asi :
objExcel.ActiveSheet.Cells(fila, columna) = rs!NombreCampo
al final para mostrar el libro de excel solo asignas el valor de true a la propiedad visible asi:objExcel.Visible = True objExcel.ActiveSheet.PrintPreview
Suerte...
JymmyT -
exacto, pero como hago el bucle con la consulta, ya que quiero que me exporte por libros, es decir si tengo en mi consulta clientes en 10 distritos que me exporte 10 archivos de excel lo cual seria 1 archivo por distrito con sus respectivos clientes.
este es mi codigo, no se donde hacer el bucle.
Private Sub exportar_Datagrid(Datagrid As Datagrid, n_Filas As Long)
On Error GoTo Error_Handler
Dim ObjExcel As Object
Dim i As Integer
Dim j As Integer
Me.MousePointer = vbHourglass
If n_Filas = 0 Then
MsgBox "No hay datos para exportar a excel. Se ha indicado 0 en el parámetro Filas ":
Exit Sub
Else
' -- Crear nueva instancia de Excel
Set ObjExcel = CreateObject("Excel.Application")
' -- Agregar nuevo libro
ObjExcel.Workbooks.Add
' -- Referencia a la Hoja activa ( la que añade por defecto Excel )
ObjExcel.Sheets("Hoja1").Name = "Reporte Cartera"
' titulo
ObjExcel.ActiveSheet.Cells(1, 3) = "REPORTE DE CREDITOS: Según los Días de Atraso Disgregados por Negocios / Línea Base"
With ObjExcel.ActiveSheet.Cells(1, 3).Font
.Color = vbBlack
.Name = "arial"
.Size = 11
.Bold = True
End With
iCol = 0
' -- Recorrer el Datagrid ( Las columnas )
For i = 0 To DataGrid1.Columns.Count - 1
If DataGrid1.Columns(i).Visible Then
' -- Incrementar índice de columna
iCol = iCol + 1
' -- Obtener el caption de la columna
ObjExcel.ActiveSheet.Cells(4, iCol) = DataGrid1.Columns(i).Caption
' -- Recorrer las filas
For j = 3 To n_Filas - 1
' -- Asignar el valor a la celda del Excel
ObjExcel.ActiveSheet.Cells(j + 2, iCol) = _
DataGrid1.Columns(i).CellValue(DataGrid1.GetBookmark(j))
Next
End If
Next
' -- Hacer excel visible
ObjExcel.Visible = True
ObjExcel.SheetsInNewWorkbook = 1
End If
' -- Eliminar las variables de objeto excel
Set ObjExcel = Nothing
' -- Restaurar cursor
Me.MousePointer = vbDefault
Exit Sub
' -- Error
Error_Handler:
MsgBox Err.Description, vbCritical
On Error Resume Next
End Sub
maculdes