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 de ariel_20
-1
-1
ariel_20, mi vida es entender el vb6 para programar el mundo
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.