Visual Basic y base de datos Access

Tengo una base de datos Access y no puedo acceder a ella desde Visual Basic; este último no me permite abrir mi base de datos de Access de Office 2000.

52 respuestas

  1. ¿cómo establecer una conexión entre VB6.0 y una base de datos Access?
    44
    1. SÍ, me encantaría mucho, por favor.
      0
    2. Quiero una base de datos Access 2003 que quiero conectar a un programa .exe estándar VB6
      0
  2. hola
    acabo de leer este foro pero aún no logro conectar mi base de datos Access con VB6. tengo una base de datos formada por 4 tablas y consultas. quiero, usando VB, mostrar algunos campos de la tabla, modificarlos, eliminarlos y agregar registros, insertar estadísticas ya calculadas por las consultas de Access...gracias por toda la ayuda y me gustaría que me envíen cursos que consideren interesantes
    gracias por todo
    15
    1. slt j'aimerai si possibles avoir des cours performants avec exemples sur les bases de données créées avec le vb6 et access
      7
      1. Hola,
        Estoy desarrollando una aplicación VB6 en la plataforma de Windows 2000 que es específica para una empresa y no logro conectarme a la base que creé en Access 2000. Me dice que no reconoce el formato de la base. He probado con otros códigos, pero nada. ¿Puedes ayudarme?
        Aquí tengo el mensaje «La conexión n'a pas réussi,réessayez»
        Te envío el código que he utilizado:

        Option Explicit
        'Declaración de variables globales
        'Global DbName As String
        Global Liberreur As String
        'Global OK As Integer

        Public Cnx As New ADODB.Connection
        Public Rst As New ADODB.Recordset
        Public Cmd As New ADODB.Command
        Sub main()
        'Este procedimiento llama a la función de apertura de la BD y muestra la ventana de inicio.
        If OuvrirBase = True Then
        frmConnexion.Show
        Else
        MsgBox ("La connexion n'a pas réussi,réessayez")
        End If
        End Sub

        Public Function OuvrirBase() As Boolean
        'Esta función abre la BD Access 2000
        On Error GoTo Erreur

        Cnx.Provider = "Microsoft.Jet.Oledb.4.0"
        Cnx.ConnectionString = App.Path & "c:\db1.mdb"
        Cnx.Open
        Cmd.ActiveConnection = Cnx
        OuvrirBase = True
        Exit Function
        '\gbemich\GESPARC\Application\
        Erreur:
        Liberreur = "Erreur d'ouverture de la Base"
        OuvrirBase = False
        End Function

        Public Sub OuvrirRecord(StrSQL As String)
        'Esta rutina permite abrir todas las tablas de la BD. Este código para abrir una tabla es una consulta SQL que hay que pasarle, es decir, un ''select''
        'Mira en la ayuda a nivel de estas propiedades . verás para qué sirven

        Cmd.ActiveConnection = Cnx
        Cmd.CommandText = StrSQL
        Rst.CursorLocation = adUseClient
        Rst.CursorType = adOpenDynamic
        Rst.LockType = adLockPessimistic
        Rst.Open Cmd
        End Sub

        Public Sub FermerRecord()
        'Esta rutina permite cerrar todas las tablas de la BD
        On Error Resume Next
        Rst.Close
        Set Rst = Nothing
        Set Rst = New ADODB.Recordset
        End Sub

        Public Sub FermerBase()
        'Esta rutina permite cerrar la BD
        On Error Resume Next
        Cnx.Close
        Set Cnx = Nothing
        End Sub
        4
        1. También puedes convertir la base de datos a la versión inferior, es decir, a la versión 97. Y todo irá mejor.
          0
        2. Hola Vignon, no sé si has encontrado la solución, pero creo que la ruta de la BD no es la correcta.
          intenta más bien:

          Cnx.ConnectionString = App.Path & "\\db1.mdb"

          porque App.Path seguramente debe designar la ruta de db1.mdb

          y "\\" es un carácter especial

          Por último, a ver.
          0
        3. Si no puedes conectarte a la base de datos es porque la has convertido a la versión 2000

          tienes que convertir la base de datos a la versión 97
          y ahí funcionará.

          C todo
          0
        4. USTED DEBE CONVERTIR SU BASE DE DATOS A EL FORMATO 97
          EN ACCESS
          PASOS:
          HAGA CLIC EN EL MENÚ HERRAMIENTAS
          UTILIDADES DE BASES DE DATOS
          CONVERTIR LA BASE DE DATOS AL FORMATO 97
          usted da un nombre al archivo
          en este caso tendrá 2 bases de datos
          * formato 2000
          * formato 97

          en vb:
          propiedades DE DATA

          DATABASENAME : conéctate a la base de datos en formato 97 porque el control DATA no reconoce el formato 2000
          0
      2. Hola a todos
        ¿cómo puedo mostrar una imagen en toda la form en VB
        porque cuando la hago no se muestra en la form, una parte queda?
        3
        1. Contáctame en ghost_dog_jr@hotmail.com y te daré un tutorial y consejos si quieres, porque es un poco largo de explicar...
          2
          1. hola ando, es muy amable de tu parte haberme respondido
            0
          2. Bonjour ! Je peux t’aider à démarrer avec ta base Access et le VB. Pour commencer, donne-moi quelques détails rapides:
            - quelle version d’Access tu utilises
            - quel est ton objectif (par ex. afficher des données, ajouter des enregistrements, filtrer)
            - un aperçu des tables principales et des relations éventuelles
            - un extrait de ce que tu as essayé (code VB ou expressions SQL)

            En attendant, voici quelques bases utiles:
            - Pour afficher des données dans un formulaire, utilise le mode Formulaire et lie-le à une Source de données (Table/ requête).
            - Le VB simple pour ouvrir une connexion et lire des données peut démarrer ainsi (dans un module):
            Dim rs As DAO.Recordset
            Dim db As DAO.Database
            Set db = CurrentDb
            Set rs = db.OpenRecordset("NomDeLaTable", dbOpenDynaset)
            If Not rs.EOF Then
            MsgBox rs!NomChamp
            End If
            rs.Close
            Set rs = Nothing
            Set db = Nothing
            - Pour ajouter un enregistrement via VBA:
            CurrentDb.Execute "INSERT INTO NomTable (Champ1, Champ2) VALUES ('Valeur1', 'Valeur2')"
            - Assure-toi d’activer la référence à la bibliothèque DAO: Outils -> Références dans l’éditeur VBA, coche "Microsoft DAO 3.6/Type Library" selon ta version.

            Si tu me donnes des morceaux concrets de ton schéma (noms des tables et champs) et le code VB que tu as tenté, je te proposerai des corrections précises et des étapes pas à pas.
            0
          3. Hola, Salima Lakhal, tengo un problema para entender Access y me gustaría que me ayudaras yo (para ayudarme por favor) ok, mi MSN safae_roubi@hotmail.fr contáctame a este correo quiero que me ayudes por favor amigos ayúdenme
            0
          4. Hola, soy Olive. Tengo un problema para entender cómo crear Visual Basic y una base de datos, y por qué Access 2007 es muy complicado. ¿Podrías darme la solución, por favor?
            0
          5. pobre inútil, no puedes escribir en un post para responder a la comunidad. Si no sabe, hay otros... así es como nos quedamos con problemas sin resolver.

            ¿demasiado largo para escribir? será más largo explicárselo a cada persona que te lo pida.
            0
        2. Ok Salima, ahora primero, cuando abras VB desde el menú Proyecto -> Referencia -> marca Microsoft DAO 2.5/3.51 compatibility library.

          Luego, en el editor de programación, escribe las siguientes líneas de código:

          dim cnx as adodb.connection
          dim cmd as adodb.command
          dim rs as adodb.recordset

          sous la procédure form_load() tapez:

          set cnx=new adodb.connection
          set cmd=new adodb.command
          set rs=new adodb.recordset

          cnx.Provider="Microsoft.jet.oledb.4.0"
          cnx.connectionstring="tu base de datos que debe estar en la carpeta del proyecto.mdb"
          rs.cursorlocation=adUseClient
          rs.cursortype=adopenDynamic
          rs.locktype=adlockPessimistic

          rs.open cmd

          Te deseo buena suerte y mucho ánimo

          Saludos
          2
          1. Veo que dominas Access 2007, ¿me puedes dar la solución para convertir una base de datos Access 97 a Access 2003 sin problema? He probado todos los métodos posibles e inimaginables y... siempre pasa algo.
            0
        3. hola

          si el programa que conecta VB con Access, ¿podrías publicarlo en: srigovich@hotmail.com
          gracias de antemano
          2
          1. Hola,

            Para evitar algunos fallos, necesitas convertir tu base de datos a ACCESS 97.

            Haz una prueba para ver.

            Nos vemos.
            1
            1. Primero quiero agradecerle por su respuesta, es muy amable de su parte, y esta solución la he probado ya y funciona, pero el Office instalado en las máquinas es la versión 2000, así que no puedo convertir cada vez, no es profesional, y no entiendo por qué Office 2000 es menos eficiente que la versión 97.
              1
              1. respuesta de majid para salima
                no es Office 2000 el que es menos eficiente que Office 97; es al revés. el problema es que el control Data de Visual Basic no conoce las bases de datos Access 2000, así que para resolver el problema hay que usar el control ADODC; el problema quedará resuelto.
                0
            2. trabajo normalmente con VB y Access, envíame tu código para ver

              *pones un control DATA
              *un DBGRID
              o no
              ejemplo

              declara de la siguiente manera
              SET MO(el nombre de la variable con la que vas a trabajar) as database="la ruta de acceso a tu base")
              SET moo as database.recordset="el nombre de la tabla"
              1
              1. GRACIAS POR TODO. SOY PRINCIPIANTE EN VB Y HE CREADO UN PEQUEÑO PROYECTO SOBRE FUNCIONARIOS EN EL QUE HAY TODA LA INFORMACIÓN: NOMBRE, APELLIDOS, ETC... CON LA FOTO. PARA LA CARGA DE UN NUEVO REGISTRO HE ENCONTRADO EL PROBLEMA EN EL MOMENTO DE MOSTRARLA. POR ESO LES PIDO QUE ME AYUDEN A SABER CÓMO INSERTAR UNA IMAGEN USANDO UN BOTÓN, AGREGAR UNA IMAGEN. GRACIAS, UNA VEZ MÁS, MOUMEN RAHAL.
                0
            3. quiero saber cómo puedo vincular VB 6.0 con la base de datos
              nes j
              1
              1. You need to create a Microsoft Access 97 database for VB6, my friend.
                1
                1. hola moh
                  en Visual Basic he vinculado mi programa a la base de datos Access2000 a través del control Data, pero éste me señala un error de acceso a la base, es realmente sorprendente, sobre todo porque funciona muy bien con Access97, ya no entiendo nada, espero que puedas ayudarme, cuento contigo
                  nos vemos pronto en la red
                  0
                  1. ¿Necesitas mostrar todo el contenido de la base de datos o solo trabajar con ello (hacer búsquedas)?
                    me dio el mismo problema con Access 2000, creo que hay incompatibilidad con Access 2000
                    pero voy a ver cómo hacerlo
                    0
                  2. Hola Salima

                    La solución a tu problema es usar el modelo ADO para vincular la base de datos de Microsoft Access 2000 o posterior con Visual Basic, pero para vincular la base de datos Access 97 se utiliza el modelo DAO (Data)
                    0
                  3. @mbarekhola
                    he encontrado un problema similar al propuesto por Salima. pero el problema es elegir las referencias correctas para incorporar. querido amigo, ¿conoces las referencias que hay que añadir para poder utilizar el ADO?
                    0
                2. lo siento pero hay que cambiar los datos, son incompatibles con Acce s2000
                  y si quieres más explicaciones sobre el problema, contáctame por mi dirección de correo electrónico para obtener más detalles sobre tu problema, chao
                  0
                  1. Hola a todos,
                    me gustaría saber funciones básicas que me permitirían manipular una base de datos Access 2003 con Visual C.
                    bueno, gracias a todos los que me ayuden^^
                    hasta pronto.
                    0
                    1. Necesitas convertir tu base a formato Access 97; para ello, en Access ve a Herramientas, Utilitarios de Base de Datos, y realiza la conversión. Luego, en VB, adjúntalo al proyecto. Buena suerte.
                      0
                      1. hola
                        te doy cursos para saber cómo conectar la base de datos a mi código b6, mi msn:tel_kamal@hotmail.fr
                        y gracias por tu ayuda espero tu respuesta
                        kamal B
                        0
                    2. you are looking for the ocx data object 3.6 instead of 3.5 that Office 2000 requires
                      0
                      1. escucha no sé cómo decirte expón bien tu problema, yo siempre he trabajado con VB y las bases Access así que si quieres ayuda ilúmbrame tu problema
                        0
                        1. hola salma
                          para poder conectarte a una BD Access 2000 debes usar el ocx Microsoft DAO 3.6 :
                          en el menú Proyecto haz clic en la pestaña Referencias e intenta localizarlo en la lista de casillas para marcar
                          si no lo encuentras intenta buscarlo con la utilidad de búsqueda de Windows para conocer su ruta, luego regresa a la pestaña Referencias y haz clic en Examinar para volver a localizar tu ocx y añade-lo . buena suerte
                          mi correo: hanshans26@hotmail.com
                          por si quieres avisarme de algo porque solo me conecto muy rara vez
                          0
                          1. Estoy que lo paso mal,
                            Durante dos días no avanzo en mi proyecto: tengo un problema con las variables booleanas, cuando añado un miembro no hay problema, se guarda bien en la base de datos, pero para datos que ingresé yo mismo desde Access no logro que aparezcan en las opciones del botón, he probado con Todo Verdadero/Falso, sí/no, -1/0 false/true... ¡ayúdenme por favor!
                            0
                        • 1
                        • 2
                        • 3