source microsoft for ejemplo data conexion cadena sql-server ms-access vb6 ado

sql-server - microsoft - data source sql server



Problemas para conectarse y consultar en ADO (1)

Estoy creando un archivo .MDB que incluye una base de datos de acceso ms y un formulario creado con vb 6. Estoy usando ms access 2000, y necesito conectarme a mi base de datos local en el MDB y a una base de datos remota de MS SQL 2005.

En el siguiente código, puedo usar un msgbox para mostrar el valor devuelto por el conjunto de resultados, pero cuando trato de mostrarlo en un cuadro de texto, p. Ej .: txtStatus.Value = txtStatus.Value & rstRecordSet.Fields(1) & vbCrLf , it simplemente se cuelga. Y el método show en el ejemplo original del tutorial tiene un método de depuración. Imprime algo, pero resulta que no hice nada que pueda ver. Quiero decir, VB no tiene un panel de consola, ¿a dónde va la declaración impresa?

El código con error obtenido:

Function Testing() On Error GoTo Error_Handling Dim conConnection As New ADODB.Connection Dim cmdCommand As New ADODB.Command Dim rstRecordSet As New ADODB.Recordset conConnection.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _ App.Path & "/" & CurrentDb.Name & ";" conConnection.CursorLocation = adUseClient With cmdCommand .ActiveConnection = conConnection .CommandText = "SELECT * FROM Opt_In_Customer_Record;" .CommandType = adCmdText End With With rstRecordSet .CursorType = adOpenStatic .CursorLocation = adUseClient .LockType = adLockOptimistic .Open cmdCommand End With If rstRecordSet.EOF = False Then rstRecordSet.MoveFirst Do MsgBox "Record " & rstRecordSet.AbsolutePosition & " " & _ rstRecordSet.Fields(0).Name & "=" & rstRecordSet.Fields(0) & " " & _ rstRecordSet.Fields(1).Name & "=" & rstRecordSet.Fields(1) rstRecordSet.MoveNext Loop Until rstRecordSet.EOF = True End If conConnection.Close Set conConnection = Nothing Set cmdCommand = Nothing Set rstRecordSet = Nothing Exit Function Error_Handling: MsgBox "Error during function Testing!" Exit Function End Function


Pensé que era una broma al principio ;-) De todos modos, supongo que estás hablando de ADO, como en tu título.

Aquí puedes encontrar cosas. Este sitio lo ayudará con las cadenas de conexión para diferentes bases de datos.
La diferencia entre el acceso y el servidor SQL usando ADO es exactamente la cadena de conexión. Te sugiero que evites los controles remotos de datos porque al principio te simplifican la vida pero luego tienes que luchar con ellos porque no funcionan correctamente.

Este es un ejemplo de conexión y búsqueda de datos:

Dim cnn As New ADODB.Connection Dim cmd As New ADODB.Command Dim strSql As String cnn.ConnectionString = _ "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=m:/testdbSource/testSource.mdb;" & _ "User Id=admin;Password=;" cnn.Open cmd.ActiveConnection = cnn cmd.CommandType = adCmdText cmd.CommandText = "select * from tblSource" cmd.Execute Set cmd = Nothing cnn.Close Set cnn = Nothing

Esta muestra funciona para mí:

Function Testing() On Error GoTo Error_Handling Dim MyDb As String Dim conConnection As New ADODB.Connection Dim cmdCommand As New ADODB.Command Dim rstRecordSet As New ADODB.Recordset MyDb = "db1.mdb" With conConnection .Provider = "Microsoft.Jet.OLEDB.4.0" .ConnectionString = App.Path & "/" & MyDb .Open End With With cmdCommand .ActiveConnection = conConnection .CommandText = "SELECT * FROM Opt_In_Customer_Record;" .CommandType = adCmdText End With With rstRecordSet .CursorType = adOpenStatic .CursorLocation = adUseClient .LockType = adLockOptimistic .Open cmdCommand End With Do While Not rstRecordSet.EOF MsgBox "Record " & rstRecordSet.AbsolutePosition & " " & _ rstRecordSet.Fields(0).Name & "=" & rstRecordSet.Fields(0) & " " & _ rstRecordSet.Fields(1).Name & "=" & rstRecordSet.Fields(1) rstRecordSet.MoveNext Loop conConnection.Close Set conConnection = Nothing Set cmdCommand = Nothing Set rstRecordSet = Nothing Exit Function Error_Handling: MsgBox "Error during function Testing!" MsgBox Err.Description End Function