Visual basic 6.0 y sql server 2000

La verdad no se mucho de visual basic recién estoy empezando a aprender... Estoy tratabndo de hacer una aplicación la cual se pueda conectar a una base de datos hecha en sql server 2000 los datos pueden ser añadidos a esta base ingresando por teclado pero no puedo conectar la base de datos con la aplicación por lo mismo no añade nuevos datos, les agradecería mucho si me dieran pistas donde esta el error en el siguiente pedazo de código
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim tField As ADODB.Field
    Set cnn = Nothing
    Set rst = Nothing
    Set cnn = New ADODB.Connection
    Set rst = New ADODB.Recordset
    cnn.Open "Provider=SQLOLEDB; " & _
            "Initial Catalog=facturacion; " & _
             "Data Source= C:\Archivos de programa\Microsoft SQL Server\MSSQL\Data\facturacion_Data.MDF; " & _
             "integrated security=SSPI; persist security info=True;"
    rst.Open "SELECT * FROM CLIENTES", cnn, adOpenDynamic, adLockOptimistic
    With cboCampos
        .Clear
        For Each tField In rst.Fields
            .AddItem tField.Name
        Next
        .ListIndex = 0
    End With
    rst.Close
    cnn.Close
rst.AddNew
rst("cliecodigo") = "3"
rst("cliecedula") = txtCedulaCliente.Text
rst("clienombre") = txtNombreCliente.Text
rst("cliedireccion") = txtDireccionCliente.Text
rst("clietelefono") = txtTelefonoCliente.Text
rst.Close
cnn.Close
End Sub
Respuesta
1
El error es muy simple : jamás has declarado la variable cnn, por lo cual difícilmente puedas lograr una conexión.
De todas maneras, te paso un código un poco más profesional a ver si te sirve.
Esto debería ir en un módulo para que puedas acceder
Public CN as ADODB.Connection
Public rs as ADODB.Recordset
Public strConn as string
Public Function Conecta as boolean
   Desconecta()
   if CN is nothing then
     set CN = New ADODB.Connection
    CN.Connectionstring = GetConnString()
    if CN.Connectionstring <> vbnullstring then
      CN.Open
    endif
    Conecta = (CN.State = ConnectionStatus.Open)
end Function
Public sub DesConecta
   If Not CN is nothing then
      CN.close
      set CN = Nothing
   Endif
end sub
Public Sub ConnString
   strConn = (Aquí tu método para recuperar la cadena de conexión)
end sub
Abrazos,
Sherite
Muchas gracias por tu ayuda! Ya había resuelto el problema de una forma distinta pero la probé con la tuya y es mucho más sencilla gracias

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas