Como grabar un registro en una Tabla SQL con Vba 5 o 6

Sres. T.E.

De Uds. Necesito ayuda con respecto as siguiente código:

Intento Grabar registros nuevos con AddNew y no logro hacerlo, al ejecutar el programa se inicia y finaliza normal sin mensajes de error, pero el registro no lo graba

¿Dónde estoy fallando?

Dim cn      As New ADODB.Connection

Dim rs      As New ADODB.Recordset

Dim provStr As String

Private Sub cmdAbrir_Click()

    cn.Provider = "sqloledb"

    provStr = "Server=PRD-I001\SQLEXPRESS;Database=NomGanaderos;Trusted_Connection=yes"

    cn.Open provStr

    rs.Open "BaseDatosGand", cn, adOpenDynamic, adLockOptimistic

    rs.AddNew

    rs.Fields("bdG_Empresa") = "000201"

    ' rs.Fields("bdG_Código") = "000946"

    ' rs.Fields("bdG_Nombres") = "Nombre sin Apellido"

    ' rs.Fields("dbG_CIdentidad") = "3467620"

    ' rs.Fields("dbG_Ruta") = "9004"

    ' rs.Fields("dbG_Status") = "A"

    '  rs.Fields("dbG_FmaPago") = "D"

    rs.Update

    rs.Close

    cn.Close

    Set rs = Nothing

    Set cn = Nothing

End Sub

Respuesta

¿El código es exactamente como indicas? Creo tienes una comilla de comentario delante de todos los campos ' rs.Fields... ¿Puedes revisarlo y me comentas?

Hola isabel67

Con respecto a tu comentario “Comilla de Comentario”, como puedes observar la primera instrucción después de rs.AddNew no tiene dicha Comilla.

Con respecto a la consulta el comentario que hice “Intento Grabar registros nuevos con AddNew y no logro hacerlo, al ejecutar el programa se inicia y finaliza normal sin mensajes de error, pero el registro no lo graba” , pienso que ejecute el programa dicha instrucción con la Comilla y por eso no hubo ningún Mensaje.

 Ok le quite la Comilla y lo ejecute de nuevo, mostrando el Mensaje Siguiente:

Error ‘3265’ en tiempo de ejecución:

No se encontró el elemento en la colección que corresponde con el

Nombre o el ordinal pedido.  

Nota: Esto Códigos los realizo con Vba 5 y lo relaciona con una tabla de sql Server 2005.

Saludos

Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim provStr As String

Private Sub cmdAbrir_Click()

cn.Provider = "sqloledb" -->Connection

provStr = "Server=PRD-I001\SQLEXPRESS;Database=NomGanaderos;Trusted_Connection=yes"

Cn. Open provStr --> Connection

En el Recordset (rs) una vez que se ha abierto la conexión (cn) se ejecuta la consulta sobre la tabla que se necesita:
Rs. Open "BaseDatosGand", cn, adOpenDynamic, adLockOptimistic

¿En tu caso BaseDatosGand es una tabla? ¿Debe ser la tabla sobre la que vas a actualizar el resgistro
NomGanaderos es el nombre de la base de datos? Debe ser la base de datos donde se encuentra la tabla.

El error que te esta dando es porque no se ha recuperado el registro que quieres en el objeto rs

Espero te sirva. He tenido problemas a la hora de contestarte. Lo siento.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas