Crear conexión de base de datos desde Visual Basic 6 a Access

Bienvenidos a VerTutoriales, en esta ocasión vamos a ver como realizar una conexión entre Visual basic 6 (vb6) y Microsoft Access, quizás pueda parecer obsoleto, pero la linea de aprendizaje de este lenguaje, junto con la velocidad para realizar pequeñas aplicaciones lo hacen aún atractivo para pequeños desarrollos.

MUY IMPORTANTE: Para que te funcionen los objetos de datos, es necesario añadir una referencia a nuestro visual basic 6, en este caso la librería que te recomiendo es Microsoft ActiveX Data Objects 2.X. En el vídeo puedes ver como agregarla, normalmente esta librería viene instalada por defecto, más o menos «actual» pero suele venir, sino la tienes coméntamelo y te busco la librería que Microsoft recuerdo que tenía un paquetito.

Una vez agregada la librería, lo siguiente es crear la cadena de conexión, el primer ejemplo es para acceder a la base de datos protegida con contraseña:

ConexBD = «Provider=Microsoft.Jet.OLEDB.4.0; Data Source=mibasededatosacces.mdb; Jet OLEDB:Database Password=MiPass»

En este caso no tiene contraseña:

ConexBD = «Provider=Microsoft.Jet.OLEDB.4.0; Data Source=mibasededatosacces.mdb; Jet OLEDB:Database»

Luego sería pasarle a vb6 el resto para conectar, para ello declaramos dos objetos el primero tipo conexión de base de datos y el otro de registros RecordSet

Dim BD As ADODB.Connection
Dim Rs As ADODB.Recordset

A continuación los instanciamos y conectamos con la cadena de conexión creada previamente para hacer el enlace con nuestro fichero de base de datos en Access.

‘Crear los objetos

Set BD = New ADODB.Connection
Set Rs = New ADODB.Recordset

‘conecto con la base de datos
BD.Open ConexBD

Llegamos a este punto, es trabajar directamente con la base de datos usando el objeto recordset para movernos por los registros, podríamos realizar una consulta de esta manera:

Rs.Open «SELECT * FROM Almacen ORDER BY idAlmacen», BD, adOpenDynamic, adLockOptimistic

De esta manera nos traeríamos todos los registros contenidos en la tabla de Almacen. Luego simplemente tendremos un objeto con la información que podremos acceder tan fácil como:

Rs!Nombredelcampo

 

Os dejo el código completo para conectaros a una base de datos de Microsoft Access con Visual Basic 6 (vb6):

Dim ConexBD as string

ConexBD = “Provider=Microsoft.Jet.OLEDB.4.0; Data Source=mibasededatosacces.mdb; Jet OLEDB:Database”

Dim BD As ADODB.Connection
Dim Rs As ADODB.Recordset

‘Crear los objetos

Set BD = New ADODB.Connection
Set Rs = New ADODB.Recordset

‘conecto con la base de datos
BD.Open ConexBD

Rs.Open «SELECT * FROM Almacen ORDER BY idAlmacen», BD, adOpenDynamic, adLockOptimistic

msgbox Rs!Nombredelcampo

Este artículo está realizado como parte de un proyecto que está realizando Nancy, puedes seguir el proyecto completo de Inventario de equipos en Visual Basic 6 aquí

Espero que os sirva!, si es así compartir en redes sociales y comentad!

 

Carlos Dk

Apasionado por la enseñanza y el SEO

76 comentarios en “Crear conexión de base de datos desde Visual Basic 6 a Access

  • el 27 junio, 2014 a las 3:08 pm
    Permalink

    de la libreria es esta microsoft Activex Data objects 2.0 library

    Respuesta
  • el 27 junio, 2014 a las 3:11 pm
    Permalink

    amm el primer codigo donde lo voy a introducir???
    este
    ConexBD = “Provider=Microsoft.Jet.OLEDB.4.0; Data Source=mibasededatosacces.mdb “; Jet OLEDB:Database”

    Respuesta
  • el 27 junio, 2014 a las 3:26 pm
    Permalink

    Es el que se utiliza luego en la conexión de la base de datos, está explicado más abajo donde dice:

    ‘conecto con la base de datos
    BD.Open ConexBD

    Respuesta
    • el 27 junio, 2014 a las 4:22 pm
      Permalink

      Tal y como comenta Agapito, la variable que estás declarando previamente es para utilizarla luego como conexión, aunque podrías ponerla directamente así:
      BD.Open “Provider=Microsoft.Jet.OLEDB.4.0; Data Source=bbddAccess.mdb“; Jet OLEDB:Database”

      Es solo por tener la conexión guardada por si tienes que volverla a utilizar en más sitios (que suele ser normal).

      Salud!

      Respuesta
  • el 27 junio, 2014 a las 4:23 pm
    Permalink

    Con respecto la librería, sí, la que comentas es la 2.0, pero hay más nuevas, de hecho creo recordar que yo estaba utilizando la 2.7 y estaba la 2.8, pero a partir de esta versión creo que ya no había más.

    La versión 2.0 entiendo que te valdrá 😉

    Respuesta
  • el 27 junio, 2014 a las 4:33 pm
    Permalink

    si pero lo que pasa esque no se donde se va a introducir esto. disculpen la ignorancia pero soy nueva en esto

    Respuesta
    • el 4 enero, 2020 a las 1:35 am
      Permalink

      Ami no me da el codigo Como le ago

      Respuesta
      • el 4 enero, 2020 a las 9:25 am
        Permalink

        Pues el código está funcional. ¿Qué es lo que no te funciona de la conexión?

        Respuesta
  • el 27 junio, 2014 a las 4:41 pm
    Permalink

    No entendí la pregunta o creo no entenderla, lo que preguntas es ¿dónde pones ese código o el código en general?

    Respuesta
  • el 27 junio, 2014 a las 5:01 pm
    Permalink

    tambien lo de los 2 objetos lo pongo donde mismo

    Respuesta
  • el 27 junio, 2014 a las 5:08 pm
    Permalink

    He puesto al final del artículo todo el código completo, este código que digo has de incluirlo en el form_load del formulario donde tengas la gestión del Inventario. Te lo pego aquí para seguir la linea:

    ConexBD = “Provider=Microsoft.Jet.OLEDB.4.0; Data Source=mibasededatosacces.mdb; Jet OLEDB:Database”

    Dim BD As ADODB.Connection
    Dim Rs As ADODB.Recordset

    ‘Crear los objetos

    Set BD = New ADODB.Connection
    Set Rs = New ADODB.Recordset

    ‘conecto con la base de datos
    BD.Open ConexBD

    Rs.Open «SELECT * FROM Almacen ORDER BY idAlmacen», BD, adOpenDynamic, adLockOptimistic

    msgbox Rs.value(0)

    A ver si así queda más claro 😉

    Respuesta
  • el 27 junio, 2014 a las 5:10 pm
    Permalink

    me marca error en esta parte rovider=Microsoft.Jet.OLEDB.4.0

    Respuesta
  • el 27 junio, 2014 a las 5:16 pm
    Permalink

    El código que está en el artículo está correcto, comprueba que las comillas estén bien puestas y demás, seguramente al copiar directamente el código, las comillas de la fuente te la cambie, han de usarse las comillas que están situadas en el número 2 😉

    Copia el código completo y cambia las comillas a ver como va, lo que va entre comillas es una cadena de texto, ha de quedar todo coloreado del mismo color.

    Me cuentas 😉

    Respuesta
  • el 27 junio, 2014 a las 5:24 pm
    Permalink

    ok am todo el codigo lo coloco en el comboBox que tengo o den un button

    Respuesta
  • el 27 junio, 2014 a las 5:26 pm
    Permalink

    Yo te recomendaría ponerlo en el evento load del formulario. Si haces dobleclic te aparecerá el evento automáticamente, ahí pegaría todo el código 😉

    Ahora mismo lo que nos interesa es poder conectar con la base de datos, más adelante veremos más cosas, pero por ahora necesitas conectar con la base de datos de access, estamos en ello 😉

    Respuesta
  • el 27 junio, 2014 a las 5:43 pm
    Permalink

    pero cuando lo corro me dise (unrecognized database format) es mas bien la ruta de mi base de datos creo yo. amm pero no le voi a poner la ruta

    Respuesta
  • el 27 junio, 2014 a las 6:52 pm
    Permalink

    am una pregunta si cambio mi BD a acces 97 o 2003 porque la tengo en 2000.
    esto no solucionara el problema

    Respuesta
  • el 27 junio, 2014 a las 7:23 pm
    Permalink

    Buenas Nancy

    Posiblemente el problema sea que no tienes actualizada la librería
    http://www.microsoft.com/downloads/details.aspx?displaylang=es&FamilyID=a8494edb-2e89-4676-a16a-5c5477cb9713

    Instálate el paquete que te comento y si puedes, cambia la librería de 2.0 a 2.7 😉 posiblemente venga por ahí la historia.

    Posiblemente si cambias a una versión anterior como la versión 97 de Access es posible que te lo tome, pero creo que es mejor actualizar para tener las funciones más «actuales».

    Respuesta
  • el 27 junio, 2014 a las 8:02 pm
    Permalink

    ya cambie la librerya a esta microsoft ActiveX Data Objects 2.8 Library
    y la versión de acces la cambie a 2003.
    y ahora me sale este error (unrecognized database format)
    que hago

    Respuesta
  • el 27 junio, 2014 a las 9:32 pm
    Permalink

    Es bastante raro, ¿seguro que la tabla y la base de datos están correctamente? Debería de dejarte conectar, cómo la has creado la base de datos?

    Respuesta
  • el 27 junio, 2014 a las 10:52 pm
    Permalink

    la tabla la tenia anteriormente en excel y después la pase acces es lo que he echo

    Respuesta
  • el 27 junio, 2014 a las 10:54 pm
    Permalink

    amm y una observacion cada vez que abro la BD me aparece un mensaje que dise «asi abre este archivo pude que contenga codigo diseñado para dañar su equipo»

    Respuesta
    • el 28 junio, 2014 a las 8:38 am
      Permalink

      No sé como has creado la base de datos, pero te diría que entraras en Access y le dieras a crear una nueva base de datos, una vez tengas creada la base de datos, darle a crear una nueva tabla, para ello tendrás que decir los campos y tipos de campo. Una vez creada la bbdd en access sería importar la tabla de excel.

      Si no sabes como crear la tabla en Access coméntamelo y te monto un videotutorial.

      Por lo que comentas, posiblemente el problema venga por como se ha creado la base de datos.

      Salud!

      Respuesta
  • el 30 junio, 2014 a las 2:44 pm
    Permalink

    hoal que tal me podrial ayudar con lo anterior porfa de como crear una tabla en Access

    Respuesta
  • el 30 junio, 2014 a las 3:10 pm
    Permalink

    Buenas Nancy, ya te echaba de menos.

    Voy a prepararte un vídeo esta tarde de cómo crear una base de datos, si pudieras indicarme las columnas que tiene tu tabla y algún ejemplo de dato, así te valdría tal y como la necesitas. Por ejemplo:

    – producto: Si es un ordenador, una impresora, etc…
    – trabajador: Que está haciendo uso del producto
    – almacen: Si no hay trabajador utilizando el producto, en qué almacén está guardado.

    Es un simple ejemplo, pero para tener más o menos claro los campos que necesitas.

    Un saludo!

    Respuesta
  • el 30 junio, 2014 a las 4:39 pm
    Permalink

    mira ya la estoy haciendo deja ver si sale, hay te aviso

    Respuesta
  • el 30 junio, 2014 a las 7:54 pm
    Permalink

    ya esta pero otra vez me dise lo mismo cuando la quiero abrir “asi abre este archivo pude que contenga codigo diseñado para dañar su equipo”

    Respuesta
  • el 30 junio, 2014 a las 8:24 pm
    Permalink

    ¿Has creado la bbdd desde 0? Entiendo que es por que el archivo de Excel tiene macros, pero si has creado una bbdd nueva, no sé cómo te pregunta tal cosa.

    De todas maneras, si le das a continuar debe de dejarte acceder a la información de la base de datos.

    Sino, como te decía, puedo montar la bbdd para que veas como lo haría yo y la pongo para que la descargues y así puedas utilizarla.

    Necesitaría la estructura de tu fichero Excel.

    Un saludo!

    Respuesta
  • el 30 junio, 2014 a las 8:39 pm
    Permalink

    si desde 0 la he creado y no me sale. y si cuando me muestra tal mensaje y le doy continuar si me deja ver la base de datos.
    pero lo que paso que cuando la quiero cambiar de Access a VB, escribo el codigo que me pasaste y me sale error

    Respuesta
  • el 1 julio, 2014 a las 4:10 pm
    Permalink

    hola que tal
    sabes que mi Internet esta inavilitado para los videos y no puedo mirar videos

    Respuesta
    • el 1 julio, 2014 a las 9:59 pm
      Permalink

      Ahora lo sé… pues no sé entonces como explicarte esa parte. Lo único que se me ocurre es poner la bbdd para que la descargues.

      Sino, otra forma sería el atacar el fichero de Excel o utilizar un fichero CSV y hacer una apertura del fichero plano, esto último sino tiene mucho volumen de información puede servir también.

      Ya me dices.

      Respuesta
  • el 2 julio, 2014 a las 2:49 am
    Permalink

    ya mire tu video muchas gracias
    ahora ya tengo mi bd en access 2007. ahora vuelvo a poner el mismo codigo en visual basic el que me avias pasado ??????

    Respuesta
  • el 2 julio, 2014 a las 7:47 am
    Permalink

    Exacto, ten en cuenta que el nombre de la base de datos en la conexión ha de ser la misma. Al menos a ver si ponemos a andar la base de datos con Visual Basic 6 y vamos luego depurando los detalles que aparezcan.

    Ya me cuentas! Salud!

    Respuesta
  • el 2 julio, 2014 a las 5:55 pm
    Permalink

    no.
    me sigue disiendo formato de base de datos no recocido

    Respuesta
    • el 2 julio, 2014 a las 7:02 pm
      Permalink

      ¿Este mensaje es diferente a los anteriores no? Puede ser por la versión en que la tienes. Prueba a guardarla en la versión 97-2003.

      Salud!

      Respuesta
    • el 2 julio, 2014 a las 8:08 pm
      Permalink

      Las referencias incluidas, creo que falta la de ADO la 2.6 puede ser, sino posiblemente no consiga conectarse.

      Cuando escribes en vb6 esto:
      Dim BD As ADODB.
      ¿Al poner el punto de ADODB. te salen más parámetros? Debería 🙂

      Respuesta
    • el 2 julio, 2014 a las 8:14 pm
      Permalink

      Revisando, he visto también esta referencia que quizás haga falta al ser el motor JET de la bbdd:
      Microsoft Jet and Replication Objects 2.6 Library

      Disculpa que no sea muy concluyente, pero hace años que no toco vb6 😉

      Respuesta
  • el 2 julio, 2014 a las 9:27 pm
    Permalink

    ya ise lo que me dijiste pero sigue igual.
    amm mira con respecto al código que me pasaste, ese lo copie tal y como tu lo tienes pero no entiendo en que punto va a buscar la base de datos. si yo no e puesto la ubicación de donde esta.
    estoy confundida

    Respuesta
    • el 2 julio, 2014 a las 10:08 pm
      Permalink

      Aquí es donde se pone la base de datos:
      ConexBD = «Provider=Microsoft.Jet.OLEDB.4.0; Data Source=mibasededatosacces.mdb; Jet OLEDB:Database»

      Está el parámetro Data Source y pone «mibasededadtosacces.mbd» justo ahí tienes que indicar donde se ubica, puedes poner el nombre o poner la ruta completa o relativa. Te recomendaría ponerla en la misma carpeta donde tengas el proyecto.

      Una forma es utilizar app.path, este método devuelve la ruta actual.

      El código está bien explicado. Pero si vemos que tal desgloso aún más la información.
      Un saludo!

      Respuesta
  • el 2 julio, 2014 a las 10:40 pm
    Permalink

    mira asi es como tengo el codigo:
    Private Sub From_Load()
    Dim ConexBD As String
    BD.Open «Provider=Microsoft.Jet.OLEDB.4.0; Data Source=bbddAccess.mdb «: Jet OLEDB: Database «»
    Dim BD As ADODB.Connection
    Dim Rs As ADODB.Recordset
    Set BD = New ADODB.Connection
    Set Rs = New ADODB.Recordset
    BD.Open ConexBD = «Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\Users\soporte-SRM1\Desktop\bd1.mdb «: Jet OLEDB: Database «»
    Rs.Open «SELECT * FROM ALMACEN ORDER BY idALMACEN», BD, adOpenDynamic, adLockOptimistic

    esta bien??

    Respuesta
    • el 3 julio, 2014 a las 8:04 am
      Permalink

      No, tienes duplicada la conexión a la base de datos: BD.Open quedaría así:

      Private Sub From_Load()
      Dim BD As ADODB.Connection //creo un tipo conexión bbdd
      Dim Rs As ADODB.Recordset //creo un objeto para utilizar las tablas (recordset)
      Set BD = New ADODB.Connection //aquí lo que hago es inicializar el objeto conexión
      Set Rs = New ADODB.Recordset //idem con el recordset
      BD.Open ConexBD = “Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\Users\soporte-SRM1\Desktop\bd1.mdb: Jet OLEDB: Database” //aquí es donde realmente estamos lanzando la conexión con la base de datos indicando el proveedor de datos (provider) y la ruta de la base de datos (Data Source)
      Rs.Open “SELECT * FROM ALMACEN ORDER BY idALMACEN”, BD, adOpenDynamic, adLockOptimistic //aquí lanzamos una primera consulta a la base de datos.

      Revisa esta linea:
      BD.Open ConexBD = “Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\Users\soporte-SRM1\Desktop\bd1.mdb: Jet OLEDB: Database”

      Si lo has copiado tal y como lo tienes, tiene problemas de sintaxis, tenía una comilla doble por medio donde tenías el nombre bbddAccess.mdb » <-- esta comilla sobra. Así debería de estar el código correcto. Si no conseguimos hoy que lo montes, creo el ejemplo y lo subo para que lo descargues con lo que ya hemos explicado. Salud!

      Respuesta
  • el 3 julio, 2014 a las 2:39 pm
    Permalink

    ya no me sale error pero no me aparece la tabla ni nada de información.
    no tendere que ponder un DATA, o una DATAGRID ?? para que ma pueda mostrar

    Respuesta
    • el 3 julio, 2014 a las 3:07 pm
      Permalink

      Eso es que ya está la conexión. Ahora podemos pasar a la siguiente parte. Realizar una consulta y añadirla al combo.

      ¿Cuál es la estructura de datos que tienes en el fichero?

      Respuesta
  • el 3 julio, 2014 a las 3:17 pm
    Permalink

    ya tengo el comboBox y lo tengo con todos los departamentos

    Respuesta
  • el 3 julio, 2014 a las 3:17 pm
    Permalink

    este es el codigo que tengo en el combo
    Combo1.AddItem «ADM DE CONTRATOS»
    Combo1.AddItem «ALMACEN»
    Combo1.AddItem «CAPACITACION»
    Combo1.AddItem «CENTRO COMUNITARIO»
    Combo1.AddItem «CONTABILIDAD»
    Combo1.AddItem «DISEL SUPERFICIE»
    Combo1.AddItem «DIRECCION OPARACION»
    Combo1.AddItem «ENSAYES»
    Combo1.AddItem «EXPLORACION»
    Combo1.AddItem «GEOLOGIA»
    Combo1.AddItem «GERENCIA»
    Combo1.AddItem «INGENIERIA»
    Combo1.AddItem «INGENIERIA INDUSTRIAL»
    Combo1.AddItem «LABORATORIO»
    Combo1.AddItem «HOSPITAL»
    Combo1.AddItem «MANTENIMIENTO»
    Combo1.AddItem «MINA SAN DIEGO»
    Combo1.AddItem «MINA TECOLOTES»
    Combo1.AddItem «MINA SEGOVEDAD»
    Combo1.AddItem «MOLINO»
    Combo1.AddItem «PLANEACION»
    Combo1.AddItem «PLANEACION Y CONTROL»
    Combo1.AddItem «PROGRAMACION»
    Combo1.AddItem «PLANTA BENEFICIO»
    Combo1.AddItem «PROYECTOS OPERATIVOS»
    Combo1.AddItem «RH»
    Combo1.AddItem «SEGURIDAD»

    Respuesta
    • el 3 julio, 2014 a las 3:37 pm
      Permalink

      Siendo así, te inquiero a que recuerdes el principio de esta tutoría donde te indicaba que en el evento click o change del combo se comprobaba el valor del combobox. Te refresco un poco:

      select case Combo1.text
      case «PLANTA BENEFICIO»
      Rs.Open “SELECT * FROM tablabbdd WHERE campoDepartamento = ‘PLANTA BCIO'», BD, adOpenDynamic, adLockOptimistic

      case «RH»
      Rs.Open “SELECT * FROM tablabbdd WHERE campoDepartamento = ‘RH'», BD, adOpenDynamic, adLockOptimistic

      […]
      end select

      En principio el select case se podría omitir si el texto del combo1 coincide con el término a buscar de la siguiente manera:

      Rs.Open “SELECT * FROM tablabbdd WHERE campoDepartamento = ‘» & Combo1.Text & «‘», BD, adOpenDynamic, adLockOptimistic

      Recuerda que el parámetro tablabbdd es donde indicamos el nombre de la tabla y CampoDepartamento es la columna o campo donde se encuentra el valor del departamento para poder realizar la criba.
      Una vez tengamos esa información solo tendremos que mostrarla.

      Para probar si funciona, puedes poner justo detrás del Rs.Open el siguiente texto, deberá de mostrar una ventana emergente con el primer valor.
      msgbox rs(0).value

      Estaré atento por si tienes dudas.
      Un saludo!

      Respuesta
  • el 3 julio, 2014 a las 3:53 pm
    Permalink

    ok entonces la informacion que tengo enm combo esta mal y la remplazo x este codigo
    select case Combo1.text
    case “PLANTA BENEFICIO”
    Rs.Open “SELECT * FROM tablabbdd WHERE campoDepartamento = ‘PLANTA BCIO’”, BD, adOpenDynamic, adLockOptimistic

    case “RH”
    Rs.Open “SELECT * FROM tablabbdd WHERE campoDepartamento = ‘RH’”, BD, adOpenDynamic, adLockOptimistic
    ?

    Respuesta
    • el 3 julio, 2014 a las 4:01 pm
      Permalink

      No, para nada, esa información entiendo que está bien. Digo que tienes que crear el evento para el combobox donde una vez seleccionado sepas el valor y a partir de ahí realizar la consulta que te ponía, es como el ejemplo que realizo en este videotutorial:
      http://vertutoriales.com/visual-basic-componente-combobox/

      Si te fijas en el video aparece como crear el evento. En realidad si pulsas doble clic sobre el combo se abrirá un evento, si no es el evento change, puedes buscarlo en el propio editor y seleccionar el evento change().

      Dentro de ese evento tiene que ir el select case.

      No sé si me estoy explicando 😀

      Respuesta
  • el 3 julio, 2014 a las 4:20 pm
    Permalink

    entonces dentro del evento Change tengo que poner el codigo?

    Respuesta
    • el 3 julio, 2014 a las 4:30 pm
      Permalink

      Exacto, dentro del evento change del combo tendrás que poner la consulta a la base de datos. Me explico más ámpliamente, lo que tienes en el combo pertenece a cada departamento, cuando seleccionas una opción en el combobox, se lanza el evento change del objeto, en ese momento se ha de comprobar que valor tiene el combo para utilizarlo en la consulta en la base de datos, que en lenguaje natural sería:

      Rs.Open “SELECT * FROM tablabbdd WHERE campoDepartamento = ‘” & Combo1.text & «‘», BD, adOpenDynamic, adLockOptimistic
      Guarda en Rs la selección de todos los campos de la tablabbdd donde encuentras que campoDepartamento sea = al valor del texto que tenga seleccionado Combo1

      Ya me cuentas.

      Respuesta
  • el 3 julio, 2014 a las 5:05 pm
    Permalink

    mira estoy poniendo el codigo en el combo de esta manera:
    Private Sub Combo1_Change()
    MsgBox Rs(0).Value
    Case «PLANTA BENEFICIO»
    Rs.Open «SELECT * FROM bd1 WHERE campoDepartamento = ‘PLANTA BCIO’, BD, adOpenDynamic, adLockOptimistic»
    Case «RH»
    Rs.Open «SELECT * FROM bd1 WHERE campoDepartamento = ‘RH’, BD, adOpenDynamic, adLockOptimistic»

    esta bien o mal ?

    Respuesta
    • el 3 julio, 2014 a las 6:02 pm
      Permalink

      Está mal. Necesito que me indiques cual es la estructura de la base de datos, ¿Cómo se guarda la información? No necesito los datos, pero sí la estructura para poder atacarla desde código. Sino resulta muy difícil ayudarte.

      Salud

      Respuesta
  • el 3 julio, 2014 a las 6:16 pm
    Permalink

    DISPOSITIVO, MARCA PC, MODELO PC, SERIE PC, PROCESADOR CAPACIDAD RAM, CAPACIDAD DISCO DURO DEPARTAMENTO AREA NO. EMPLEADO NOMBRE DEL EMPLEADO VERSION OFFICE VERSION SO MARCA DEL MONITOR MODELO SERIE UPS IMPRESORAS SERIE2
    estos son los campos que tengo en tabla

    Respuesta
    • el 3 julio, 2014 a las 6:22 pm
      Permalink

      Prueba este código a ver si te devuelve el primer dispositivo que tengas en el departamento seleccionado, si te da un error de que el departamento no existe, se entiende que los valores que hay en el Combo1 que has añadido antes con el additem, tendrán que consultarse.

      Lo formulo de otra manera, ¿en el campo DEPARTAMENTO están cada uno de los items que has añadido en el Combo1? Por otro lado, la tabla de la base de datos se llama bd1? por defecto suele ser table o algo así 🙂

      El código para probar la consulta:
      Private Sub Combo1_Change(){

      Rs.Open “SELECT * FROM bd1 WHERE DEPARTAMENTO = ‘” & Combo1.text & “‘”, BD, adOpenDynamic, adLockOptimistic
      MsgBox Rs(0).value

      }

      Salud!

      Respuesta
  • el 3 julio, 2014 a las 6:35 pm
    Permalink

    ok ya puse el codigo y me salio un error 424

    Respuesta
    • el 3 julio, 2014 a las 6:40 pm
      Permalink

      Seguramente te lo dé en la linea donde está la consulta Rs.Open, mmm tienes que sacar la declaración de variables fuera del evento form, prueba a ponerlo al principio de todo el código del formulario.

      El problema es que el objeto no está declarado en esa instancia local del evento y por tanto no existe. Si declaras las variables al principio ya tendrán acceso desde cualquier punto del formulario.

      Salud!

      Respuesta
  • el 3 julio, 2014 a las 6:55 pm
    Permalink

    nop 🙁 cuando cambio la consulta Rs.Open hacia el principio me sale error en la linea de codigo

    Respuesta
    • el 3 julio, 2014 a las 7:57 pm
      Permalink

      Lo que tienes que pasar es la declaración de variables ¬¬

      Dim BD As ADODB.Connection
      Dim Rs As ADODB.Recordset

      Para hacerlas accesibles de forma local en todo el formulario 😉 Por supuesto, has de eliminar la otra declaración que hay en el evento form_load para no duplicarla.

      Salud!

      Respuesta
    • el 3 julio, 2014 a las 8:54 pm
      Permalink

      Que cantidad de información me pasas para ayudarte…

      Vamos a ver, copia todo el código que tengas de la conexión en el combo (no es nada óptimo pero te valdrá).

      La declaración de la conexión y recordset, luego la creación de los objetos, la consulta a la base de datos y demás.

      Ahí también tiene que funcionar.

      Salud!

      Respuesta
  • el 3 julio, 2014 a las 9:34 pm
    Permalink

    mira esto es lo que tengo en el combo:
    Private Sub From_Load()
    Dim ConexBD As String
    BD.Open «Provider=Microsoft.Jet.OLEDB.4.0; Data Source=bbddAccess.mdb: Jet OLEDB: Database»
    Dim BD As ADODB.Connection
    Dim Rs As ADODB.Recordset
    Set BD = New ADODB.Connection
    Set Rs = New ADODB.Recordset
    BD.Open ConexBD = «Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\Users\soporte-SRM1\Desktop\bd1.mdb: Jet OLEDB: Database»

    End Sub
    End Function

    Private Sub DataGrid1_Click()

    End Sub
    Private Sub Combo1_Change()
    Rs.Open «SELECT * FROM bd1 WHERE DEPARTAMENTO = ‘» & Combo1.Text & «‘», BD, adOpenDynamic, adLockOptimistic
    MsgBox Rs(0).Value

    End Sub

    Private Sub Form_Load()
    Combo1.AddItem «ADM DE CONTRATOS»
    Combo1.AddItem «ALMACEN»
    Combo1.AddItem «CAPACITACION»
    Combo1.AddItem «CENTRO COMUNITARIO»
    Combo1.AddItem «CONTABILIDAD»
    Combo1.AddItem «DISEL SUPERFICIE»
    Combo1.AddItem «DIRECCION OPARACION»
    Combo1.AddItem «ENSAYES»
    Combo1.AddItem «EXPLORACION»
    Combo1.AddItem «GEOLOGIA»
    Combo1.AddItem «GERENCIA»
    Combo1.AddItem «INGENIERIA»
    Combo1.AddItem «INGENIERIA INDUSTRIAL»
    Combo1.AddItem «LABORATORIO»
    Combo1.AddItem «HOSPITAL»
    Combo1.AddItem «MANTENIMIENTO»
    Combo1.AddItem «MINA SAN DIEGO»
    Combo1.AddItem «MINA TECOLOTES»
    Combo1.AddItem «MINA SEGOVEDAD»
    Combo1.AddItem «MOLINO»
    Combo1.AddItem «PLANEACION»
    Combo1.AddItem «PLANEACION Y CONTROL»
    Combo1.AddItem «PROGRAMACION»
    Combo1.AddItem «PLANTA BENEFICIO»
    Combo1.AddItem «PROYECTOS OPERATIVOS»
    Combo1.AddItem «RH»
    Combo1.AddItem «SEGURIDAD»
    End Sub

    Respuesta
  • Pingback: Visual Basic – Componente ComboBox | Vertutoriales

  • el 25 mayo, 2016 a las 5:06 pm
    Permalink

    se puede mandar la información que metiste en el list, en ves de list podría meterla a otro combo box?

    Respuesta
    • el 26 mayo, 2016 a las 12:18 pm
      Permalink

      claro, solo tienes que realizar el add sobre el objeto combobox que definas 😉

      Respuesta
  • el 2 septiembre, 2020 a las 1:29 am
    Permalink

    Muchas gracias por este tutorial, es muy claro y conciso.

    Respuesta

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.