[Ayuda] Acces y VB6 (y dale con eso)

Iniciado por ignorantev1.1, 4 Diciembre 2010, 04:35 AM

0 Miembros y 1 Visitante están viendo este tema.

ignorantev1.1

Lo siento, hace dias hice un tema con el mismo titulo pidiendo ayuda sobre Acces y VB, despues "aparentemente" solucione el problema y decidi dar por terminado aquel tema.
Bueno pues voy con "casi" lo mismo:
Se trata de que quiero insertar, eliminar, modificar, buscar en una base de datos de acces a travez de vb6. Hay millones de manuales y he leido algunos, pero no logro encontrar alguno que realmente me ayude:

Esta es la manera en que leo los datos:

bd es un controldata...
Código (vb) [Seleccionar]

    bd.Recordset.MoveFirst
    txtNombre.text=bd.Recordset.Fields(0)
    txtEdad.text=bd.Recordset.Fields(1)
    bd.Recordset.MoveNext


No se si es la mejor forma de hacerlo, pero me funciona.

El problema es al querer insertar datos:

Código (vb) [Seleccionar]

    MsgBox bd.Recordset.Fields.Count
    bd.Recordset.AddNew
    bd.Recordset.Fields(0) = "juanito"
    bd.Recordset.Fields(1) = 88
    bd.Refresh
    bd.Recordset.MoveFirst
    MsgBox bd.Recordset.Fields.Count


por que no los inserta...

Pido de favor que me ayuden, pero OJO: busco hacerlo de esa manera, ya que hay una forma mas facil(creo yo) de ligar las cajas de texto con los campos de la base de datos, pero no quiero eso: lo que realmente quiero es trabajar con variables corrientes y con ellas modificar a placer la base de datos. Tambien hay otra forma de usar emmm, no se como llamarlo: comandos?, pero no...
gracias!

PeterPunk77

Creo que nunca he usado un objeto data, pero casi seguro que será así:
Código (vb) [Seleccionar]
    bd.Recordset.AddNew   
    bd.Recordset.Fields(0) = "juanito"
    bd.Recordset.Fields(1) = 88
    bd.Recordset.Update


Saludos.

ignorantev1.1

Amigo, eres grande! gracias!... estuve al borde del suicidio!... bueno al borde de ponerme a escuchar a RBD que es casi lo mismo...

BlackZeroX

.
ignorantev1.1

De que parte de méxico eres?

Dulces Lunas!¡.
The Dark Shadow is my passion.

karmany

Si necesitas:
bd.Recordset.Update
es porque estás utilizando un control de datos DATA.

Yo te recomiendo que uses ADO. Yo he trabajado con los dos. Esto ya se ha comentado en el foro pero si estás empezando a programar con bases de datos hazlo con ADO, hay muchísima información en la red.

Un saludo

ignorantev1.1

Hola pues con otro problema de lo mismo  :-\

Para insertar un nuevo dato hice algo asi:

Código (vb) [Seleccionar]

sub XXX()
    Dim datos(0 To 3) As Variant
   
    datos(0) = txtNombre
    datos(1) = txtDireccion
    datos(2) = txtTelefono

    Call bdNuevo(bdMain.Recordset, datos())
end sub

Public Sub bdNuevo(tdb As Recordset, datos() As Variant)
    Dim i As Integer
    tdb.AddNew
    For i = 0 To UBound(datos)
        tdb.Fields(i) = datos(i)
    Next
    tdb.Update
End Sub


y resulta esto:

Data type conversion error!

que paso?

gracias?

ssccaann43 ©

- Miguel Núñez
Todos tenemos derechos a ser estupidos, pero algunos abusan de ese privilegio...
"I like ^TiFa^"

79137913

HOLA!!!

Digo, soy el unico loco :rolleyes: que usa DAO? :P

Igual odio las Bases de datos empaquetadas, uso texto plano. XD

GRACIAS POR LEER!!!
"Como no se puede igualar a Dios, ya he decidido que hacer, ¡SUPERARLO!"
"La peor de las ignorancias es no saber corregirlas"

79137913                          *Shadow Scouts Team*

ignorantev1.1

hey ssccaann43 ese ejemplo ya lo tengo desde hace tiempo y lo estuve revisando pero no me convencion mucho... de todas formas muchas gracias! :xD

Que hay con "Data type conversion error"?

ignorantev1.1

Ya lo solucione, gracias. Bueno por si les interesa el error era el siguiente:

el Recordset que mandaba como parametro a la funcion "bdNuevo", era global: lo puse en un formulario que siempre estuviera cargado para que otros formularios lo aprovecharan y lo mandaba como parametro asi: "FormularioMain.bdMain.Recordset"

Y pues, tuve que poner uno para cada formulario y ya me funciona... :laugh: