Grabar en base de datos en vb6

HOla, deseo llevar un registro de todas las facturas que se hagan en el dia, para ellos quiero tener un codigo que guarde algunos textbox en una base de datos. Las facturas tiene desde 1 producto hasta nueve, si tengo una factura con un producto solo se vera una fila en la base de datos, pero si tene 9 son 9 filas con la información campos folio, codigo, fecha, descripción, precio, total
he intentado esto:
data1.recordset!campo =text1.text
data1.recordset.update
pero no me ha guardado y me marca error...
ayuda

1 Respuesta

Respuesta
-1
Bueno a primera vista podria serte de utilidad algo como el codigo que te pongo mas abajo, obiamente tendras que cambiar unas cosas para usarlo tu ya que desconozco las partes de tu programa.
Referencias:
primero que nada tienes que ir a Proyecto>referencias y tildas donde dice "Microsoft ActiveX data object 2.8"
direccion=direccion de la base de datos
private sub command1_click()
Dim cnn As New ADODB.Connection
Dim rs As New ADODB.Recordset
direccion="c:\bd1.mdb"
cnn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & direccion
cnn.Open
rs.Open "Select * from NOMBRE_DE_LA_TABLA", cnn, adOpenDynamic, adLockOptimistic
rs.AddNew 'CREA UN NUEVO REGISTRO EN LA TABLA
rs("FOLIO") = folio.Text
rs("CODIGO") = CODIGO.Text
rs("FECHA") = FECHA.Text
rs("DESCRIPCION") = DESCRIPCION.Text
rs("PRECIO") = PRECIO.Text
rs("TOTAL") = TOTAL.Text
rs.Update
rs.Close
cnn.close
end sub
cualquier duda pregunta
hola, una duda del campo codigo, descripcion y precio pedo tener hasta 9 lineas de estos, como los incluyo para que se agreguen en una fila abajo del primer registro..
Bueno el codigo que te mostre antes lo que hace es cargarte en la base de datos 1 de los elementos de la compra.
si la idea que tenes es que se guarden esos datos en una sola tabla vas a tener que cargar todas las cosas por cada item, es decir si tenes que poner 4 items en la factura tendras que poner el codigo 4 veces o inventarte algo que te sea mas simple te explico
por ejemplo... usar un for para recorrer un listbox
primero vas cargando los datos en el lisbox partiendo de 3 textbox y 1 boton
private sub command1_click()
list1.additem (codigo.text & ", " & descripcion.text & ", " & precio.text)
end sub
'cargamos el listbox a nuestra base de datos
private sub command2_click()
Dim cnn As New ADODB.Connection
Dim rs As New ADODB.Recordset
cnn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & "c:\bd1.mdb"
cnn.Open
rs.Open "Select * from NOMBRE_DE_LA_TABLA", cnn, adOpenDynamic, adLockOptimistic
for x = 0 to list1.listcount-1 'el -1 es porque la lista del listbox empiesa en el nº "0" y no en el "1"
coma1=instr(1,list1.list(x), ", ") 'sacamos la posicion de la primera coma
coma2=instr(1,list1.list(x), ", ")'sacamos la posicion de la primera coma
rs.AddNew 'CREA UN NUEVO REGISTRO EN LA TABLA
rs("FOLIO") = folio.Text
rs("CODIGO") = mid(list1.list(x), 1, coma1 - 1) 'el mid nos permite seleccionar dentro de una cadena de texto (en este caso) lo lo que deseamos
rs("FECHA") = FECHA.Text
rs("DESCRIPCION") = mid(list1.list(x), coma1 + 2, coma2 - coma1 - 2)
rs("PRECIO") = mid(list1.list(x), coma2 + 2)
rs("TOTAL") = TOTAL.Text
next
rs.Update
rs.Close
cnn.close
end sub
ACLARACION: no se si conoces el uso de instr y mid te los esxplico rapidamente aca
instr nos da la posicion de algo en una cadena
coma1=instr(1,list1.list(x), ", ")
esta linea quiere decir que en la variable "coma1" guarte la posicion de ", " (la coma)
el 1 es para decirle a la maquina desde donde empieza a leer
list1. List(x) es la cadena en donde queremos que busque algo
", " es lo que queremos que nos busque en esa cadena
el mid no es mucho mas dificil..
Mid(list1.list(x), 1, coma1 - 1)
List1. List(x) es la cadena
El 1 es donde le decimos que empiese a leer
(coma1 - 1) bueno es simple es la cantidad de caracteres que pretendemos que lea... es decir no sabemos el largo del codigo pero si sabemos que termina justo antes de que este la ", " entonces le decimos que lea hasta 1 caracter antes de esa ", "
Espero que me puedas entender jeje si hay algo que no lo veas claro me decis y te lo explico mas detalladamente.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas