Este código es para guardar los datos capturados en un formulario en una base de datos Access 2003, creo que te servira de idea.
Este es el código para guardar el registro (de turnos):
Código vb:
Ver originalPrivate Sub GuardarBtn_Click()
'Verifica que el Label tenga la ruta de la base de datos (previamente se abre con un
'boton y un dialogo o como tu quieras ponerla)
If RutaLab.Caption = "" Then
MsgBox "Primero abra la base de datos"
Exit Sub
End If
'Declaro la conexion y el recordset
Dim BDCn As New ADODB.Connection
Dim BDRd As New ADODB.Recordset
BDCn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & RutaLab.Caption & _
";Persist Security Info=False;Jet OLEDB:DataBase Password=***"
BDRd.Open "Consumo", BDCn, ADODB.CursorTypeEnum.adOpenKeyset, _
ADODB.LockTypeEnum.adLockOptimistic
'Aqui se guarda el registro en la BD de Access
If Not BDRd.BOF = True Then
BDRd.AddNew
'Objeto: DTPiker
BDRd.Update "Turno", TurnoDTPkr.Value
'Objeto: DTPiker
BDRd.Update "HoraDel", HoraDelDTPkr.Value
'Objeto: DTPiker
BDRd.Update "HoraAl", HoraAlDTPkr.Value
'Objeto: ComboBox
BDRd.Update "Despacho", DespachoCmb.Text
Else
BDRd.AddNew
'Objeto: DTPiker
BDRd.Update "Turno", TurnoDTPkr.Value
'Objeto: DTPiker
BDRd.Update "HoraDel", HoraDelDTPkr.Value
'Objeto: DTPiker
BDRd.Update "HoraAl", HoraAlDTPkr.Value
'Objeto: ComboBox
BDRd.Update "Despacho", DespachoCmb.Text
End If
'cierro la conexion y el recordset
BDRd.Close
BDCn.Close
'Aqui una funcion extra donde cargo los datos en una grilla la cual esta
'en el formulario de la plantilla de excel
Call CargarDatos(vsFxAyDatos, RutaLab.Caption)
End Sub
Este otro código es para consultar y cargar los datos de la BD en una grilla:
Código vb:
Ver originalSub CargarDatos(vsFxAy As vsFlexArray, Ruta As String)
'Abro la conexion y el recordset
Dim BDCn As New ADODB.Connection
Dim BDRd As New ADODB.Recordset
Dim Columna As Integer
BDCn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Ruta & _
";Persist Security Info=False;Jet OLEDB:DataBase Password=***"
'Abro la tabla
BDRd.Open "Consumo", BDCn, ADODB.CursorTypeEnum.adOpenDynamic, _
ADODB.LockTypeEnum.adLockReadOnly
With vsFxAy
.Rows = .FixedRows
'aqui cargo los datos en la grilla de un vsFlexArray
Do While Not BDRd.EOF
.Rows = .Rows + 1
.TextMatrix(.Rows - 1, 1) = BDRd.Fields("Turno").Value
.TextMatrix(.Rows - 1, 2) = Format(BDRd.Fields("HoraDel").Value, "hh:mm AM/PM")
.TextMatrix(.Rows - 1, 3) = Format(BDRd.Fields("HoraAl").Value, "hh:mm AM/PM")
.TextMatrix(.Rows - 1, 4) = BDRd.Fields("Despacho").Value
BDRd.MoveNext
Loop
'Cierro la conexion y el recordset
BDRd.Close
BDCn.Close
'ya cargados los datos hago que se autoajusten las columnas con datos
For Columna = 1 To .Cols - 1
.AutoSize (Columna)
Next Columna
End With
End Sub
Espero te sirvan de base y saludos desde Cuernavaca Morelos, México
P.D. Para est necesitas referenciar la libreria Microsoft ActiveX Data Objects x.x Library en tu plantilla de excel.