HOla estoy desesperado con esto de poder accesar de vb a sql y estoy recién en esto de la programación con vb por lo que he leído lo ise con un odbc no si es lo mejor, pero me salio un mensaje de error que dice, [ADODC] no recordsource specfied, [aDO] command text was not set for the command object Pero después igual me muestra la información que lo puse con un MSHFlexGrid1 y sale ok.
Mi problema es este mensaje. Muchas gracias y disculpa Atentamente Osvaldo [email protected] [email protected]
Lo que me parece es que estas utilizando el control ado, te recomiendo que programes con ado pero solo en código por ejemplo lo que dice el error es que no enlazastes en recordsource del control con la tabla, te mando un código para función ojala te sirva Conectar con SQL Server Function Conecta_SQL(Conexion As ADODB.Connection, AperturaExclusiva As Boolean) As Boolean On Error GoTo ErrorConecta_SQL Conecta_SQL = False Set Conexion = New ADODB.Connection Conexion.CommandTimeout = TiempoEsperaConexion If AperturaExclusiva Then 'Se abrira la conexion en modo exclusibo Conexion.Mode = adModeShareDenyNone Conexion.IsolationLevel = adXactIsolated End If Cnct = "Provider=SQLOLEDB.1";Data Source=" & SERVER & ";Initial Catalog=" & DATABASE _ & ";User Id=" & USUARIO & ";Password=" & CLAVE & ";" Conexion.Open Cnct Call EjecutaSQL(Conexion, " SET CONCAT_NULL_YIELDS_NULL OFF ", Tipo) Conecta_SQL = True Exit Function ErrorConecta_SQL: MuestraError "Conecta_SQL", Err, Error End Function Conectar con MS Access Function Conecta_ACCESS(Conexion As ADODB.Connection, AperturaExclusiva As Boolean) As Boolean Dim strCnn As String On Error GoTo errorConecta_ACCESS Conecta_ACCESS = False NombreDB = "C.\NombreBD.MDB" If Dir(NombreDB) <> "" Then ' Abre una conexión. Set Conexion = New ADODB.Connection 'Para conectar con BD Access 2000 usar el proveedor Microsoft.Jet.OLEDB.4.0. 'Para conectar con Access 97 usar Microsoft.Jet.OLEDB.3.51 Conexion.PROVIDER = Microsoft.Jet.OLEDB.4.0 If AperturaExclusiva Then 'Se abrira la conexion en modo exclusibo Conexion.Mode = adModeShareExclusive Else Conexion.Mode = adModeUnknown End If Conexion.Open NombreDB, "admin", "" Conecta_ACCESS = True Else MsgBox "Base de datos no activa.", vbExclamation, "Atención" End If Exit Function errorConecta_ACCESS: If Err = 3343 Or Err = -2147467259 Then MsgBox "Base de datos dañada.", vbCritical, "Base de Datos" Conecta_ACCESS = True Else MuestraError "Conecta_ACCESS", Err, Error End If End Function Crea Recordset ADO Function CreaRecordset(cnn As ADODB.Connection, rsAdo As ADODB.Recordset, SQL As String) As Boolean On Error GoTo ErrorCreaData CreaRecordset = False Set rsAdo = New ADODB.Recordset rsAdo.CursorType = adOpenKeyset rsAdo.CursorLocation = adUseClient 'Si queremos actualizar datos desde nuestra aplicación y se vean en la BD debeis poner rsAdo.LockType = adLockOptimistic rsAdo.LockType = adLockOptimistic rsAdo.Open SQL, cnn, , , adCmdText CreaRecordset = True Exit Function ErrorCreaData: MuestraError "CreaData", Err, Error End Function Crea AdoControl Sub CreaAdo(Conexion As ADODB.Connection, rsAdo As Adodc, SQL As String) Dim rs As ADODB.Recordset On Error GoTo ErrorCreaADO If CreaRecordset(Conexion, rs, SQL) Then Set rsAdo.Recordset = rs End If Exit Sub ErrorCreaADO: MuestraError "CreaADO", Err, Error End Sub