Hola:
Antes que el proyecto, tenes que tener la base de datos armada y funcionando.
Tu tabla a la que haces referencia, es una tabla entidad, o sea tiene campo clave que puede ser un autonumerico asignado por el sistema, o otro dato irrepetible.
Si los elementos no estan codificados, o faltan elementos para codificar, te conviene ponerles a esos elementos el autonumerico que te dà la base de datos, caso contrario, si el codigo ya esta (codigo de barras, o similar) tenes que usar ese numero o dato como campo clave.
Si se supone que mas de uno puede usar el programa en forma simultanea, entonces no podes usar ADODC porque este usa la base en forma exclusiva, sino que tenes que usar la mirosoft activeX Data Object Library 2.6 y hacer una conexion y luego un recordet para consultas y operaciones
La base de datos, que ademas tendra la tabla de clientes, de empleados, de formas de pago, facturas, y otras mas identidad y unas tablas auxiliares, tiene que estar en la misma carpeta del proyeto, para que usese donde se use el proyecto, funcione, aunque si el programa esta en otra Pc y vas a usar la misma base de datos, tendras que crear una conexion permanente de red, a la carpeta donde esta el proyeto, siendo la ruta de la base, el nombre de la unidad y el nombre de la base de datos.
la cabecera de tu formulario, definis las variables a usar.
luego escribis en el formulario,
Public cn As New ADODB.Connection
Public rsc1 As New ADODB.Recordset
Public modi%, cl%
luego conectas la base, en el load del formulario:
sub form_load()
If cn.State = 1 Then cn.Close
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\MisDatos.mdb; Persist Security Info=False"
end sub
Ya tenes la conexion, ahora, para agregar datos a la base, tendras que hacer una consulta con insert, o una orden ejecute.
Teniendo el dato que queres agregar en un textbox, supongamos el numero
en un boton pondras el codigo
If rsc1.State = 1 Then rsc1.Close
rsc1.Open "Select * from Datos", cn, adOpenStatic, adLockOptimistic
cl = rsc1.RecordCount +1'//establece la cantidad de registros y carga cl para el proximo
rsc1.close
cn.Execute "Insert Into Datos Values(" & cl & ", '" & txtnombre & "', " & txtnume & _
", #" & txtfecha & "#')"
Aca use el ejecute, pero podria haber usado la misma consulta de insertar datos con el
if rsc1.estate = 1 then rsc1.close
rsc1.Open "Insert Into Datos Values(" & cl & ", '" & txtnombre & "', " & txtnume & _
", #" & txtfecha & "#')", cn, adOpenStatic, adLockOptimistic
Para leer el registro guardado, si es unico, no hay problema en mostrarlo en una o varias cajas de texto, pero si son mas de un dato, hay que crear un conjunto de comandos que nos posicionen en el recordset y llenen las cajas a medida que avanzamos en los registros.
La consulta, es similar a la que hice para ver los registros
if rsc1.State = 1 Then rsc1.Close
rsc1.Open "Select * from Datos", cn, adOpenStatic, adLockOptimistic
if rsc1.recordcount > 1 then
mostrar
else
msgbox"No hay registros"
rsc1.close
end if
End Sub
Private Sub Cmdprimero_Click()
rsc1.MoveFirst
mostrar
End Sub
Private Sub CmdSiguiente_Click()
rsc1.MoveNext
If rsc1.EOF Then
rsc1.MoveLast
MsgBox "HA LLEGADO AL ULTIMO REGISTRO DE LA LISTA"
End If
mostrar
End Sub
Private Sub CmdUltimo_Click()
rsc1.MoveLast
mostrar
End Sub
Private Sub CmdAnterior_Click()
rsc1.MovePrevious
If rsc1.BOF Then
rsc1.MoveFirst
MsgBox "HA LLEGADO AL PRIMER REGISTRO DE LA LISTA"
End If
mostrar
End Sub
Public Sub mostrar()
TxtId= rsc1.Fields("IdDato")
TxtNombre.Text = rsc1.Fields(1) &"" '//llamo por la ubicacion de campo en vez del nombre
TxtNume = rsc1.Fields(2) & "" '//le agrego una cadena, porque si esta vacio indicara error
TxtFecha = rsc1.Fields(3) & "" '//porque el recodset trae NULO y el txt no recibe esta cosa
End Sub
BUeno creo que ya tenes una idea de coo hacerlo, ponete manos a la obra y si te surge algun problema, mandame desde mi perfil, correo un mensaje recordandome el motivo, y te paso mi e-mail asi me envias lo que has hecho y seguimos en contacto.
Dios te bendiga
Saludos
Antonio