Vb 6 y access

Como abro la BD de access xp con VB 6 de forma que no me diga que el formato no lo reconoce, he intentado algunas cosas descritas en esta misma web, pero no me han salido nada bien.

1 respuesta

Respuesta
1
Te respondo aproximadamente, dado que me faltan datos a la pregunta. Debes elegir que usas ODBC normal, ADO o RDO.
Una vez seleccionado, añade las referencias en el menu de VB de referencias.
Por ejemplo ADO Objects 2.5.0
Una vez añadido, lee en la msdn como crear un objeto conexión. Mándale los parámetros, sera tipo Jet... y bueno, mejor te envío un ejemplo :
Option Explicit
Private Conexion As ADODB.Connection
'Private Const SERVICIO_ORACLE As String = "TMMDES"
Private Const SERVICIO_ORACLE As String = "DATABASE"
Private Const LOGIN_ORACLE As String = "tmmprod"
Private Const PASS_ORACLE As String = "tamamontmmprod"
Dim innerRS As ADODB.Recordset
Private Sub Class_Initialize()
On Error GoTo FalloConexion
Set Conexion = New ADODB.Connection
Conexion.ConnectionString = strMontarCad(LOGIN_ORACLE, PASS_ORACLE, "", SERVICIO_ORACLE)
Conexion.Open
Exit Sub
FalloConexion:
MsgBox Err.Description
End Sub
Private Function strMontarCad(ByVal PestrUsuario As String, ByVal PestrClave As String, ByVal PestrServidor As String, ByVal PestrBD As String) As String
Dim mCadenaConex As String
'mCadenaConex = "Provider=MSDAORA.1;Password=" & PestrClave & ";User ID=" & PestrUsuario & ";Data Source=" & PestrBD & ";Persist Security Info=True"
'mCadenaConex = "Provider=OraOLEDB.Oracle.1;Password=" & PestrClave & ";User ID=" & PestrUsuario & ";Data Source= " & PestrBD & ";Persist Security Info=true"
mCadenaConex = "Provider =Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\BaseDeDatos\Primarios.mdb;"
strMontarCad = mCadenaConex
End Function
Public Function ExecuteQuery(SQL As String) As ADODB.Recordset
Set innerRS = New ADODB.Recordset
innerRS.CacheSize = 30
InnerRS. Open SQL, Conexion. ConnectionString, adOpenForwardOnly, adLockBatchOptimistic, adAsyncFetch
Set ExecuteQuery = innerRS
End Function
Public Sub ExecuteSQL(SQL As String)
Conexion. BeginTrans
Conexion.Execute SQL
Conexion.CommitTrans
DoEvents
End Sub
Private Sub Class_Terminate()
If (Conexion.State <> adStateClosed) Then
Conexion.Close
End If
End Sub
Este ejemplo es de una clase.
Bueno me hubieras especificado que datos te faltan. Mira:
Tengo todo el office xp instalado.
Quiero abrir una base de datos de access xp llamada: C:\basededatos\ventas.mdb
Lo que hago es colocar un control data, posteriormente selecciono la base de datos mencionada. Y enseguida, quiero poner la propiedad RECORDSET y elegir una tabla, es en este momento donde me aparece el mensaje "FORMATO E LA BASE DE DATOS NO RECONOCIDA ventas.mdb"
Si se trata de una bse de datos hecha con access 97 no tiene problemas en el momento de especificar la propiedad RECORDSET.
He intentado algunas cosas. Como instalar el jet 4.0 y el MDAC 2.6 y nada resulta.
Espero que ahora tengas más datos, de lo contrario dime exactamente cuales necesitas.
Gracias. Intentaré poner a prueba tu ejemplo. Ve por el 5 !
Bien. No suelo usar los controles Data debido a su lentitud. De hecho ahora suelo programar en VC++
Pero la mejor solución en mi opinión es que trabajes con un objeto Conexión como el que te he enviado y ejecutes las actualizaciones y consultas a mano. Esto te permite obtener soltura en SQL y Más flexibilidad.
Si necesitas ejemplos de carga de objetos Lista, Combo y similares te los puedo enviar. Del mismo modo que objetos de tipo treeview y listview. Pero es probable que la conexión directa de los contoles Data no te funcione debido a que estos necesiten actualizarse para OfficeXP. La clase que te he enviado funciona correctamente contra Office XP y me soluciona la portabilidad de una BBDD de cualquier tipo a otra...
De hecho, las cadenas de conexión que te envío en el código fuente y están comentadas son para que la conexión sea contra Oracle.
Para cerrar esta pregunta remíteme las nuevas a [email protected]

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas