[Visual Basic 6.0] Consulta conexión con base de datos.

      • 5,546
      • mensajes
      • miembro desde
      • 07/11/02
    27/10/2004
    #1 [Visual Basic 6.0] Consulta conexión con base de datos.

    El tema es el siguiente tengo que para el 16 de Noviembre entregar un modulo de mi proyecto para mi carrera (Analista de Sistemas de Información), el tema es que estoy bastante jugado con los tiempo por las entregas de la misma materia (Proyecto de Sistemas II) y otras.
    El Proyecto se tiene que hacer en un lenguaje que no sea orientado a la web. Pero debedio a la criticidad del tiempo este módulo lo voy hacer en Visual Basic 6.0 y como intento de base de datos "Microsoft Access", después veo si lo dejo en Visual Basic y la base de datos la mudo a SQL Server, o directamente tambien me mudo de entorno de desarrollo para .Net, que tengo ganas de meterme a ver algo o directamente Visual FoxPro.

    El tema que quiero utilizar una conexión con la base de datos y la verdad ya me tiene mariado el tema de ADO y DAO, quiero utilizar el último creo que si no me equivoco es ADO pero la verdad que con los nombres no los pudiron hacer mejor para la confuncion del ser humano.
    Otra cosa es que la verdad detesto por completo la barrita esa que te da VB y la verdad me parece detestable tener que ir moviendome por la base de datos por los botones de esa barra y mismo es que como que le quita presentación a una ventana.
    Se debe poder conectar con la base de datos en este primer momento Access o SQL en un posterior por medio de codigo sin utilizar la barra esa asquerosa.
    ALguien me podría ayudar con ese tema?
    Desde ya muchas gracias por todo!
    Saludos
    Nos estamos viendo
    El Rengo

  1. ¿Este tema te pareció interesante? Compártelo!

    ¿No es lo que buscabas? Intenta buscar un tema similar

    6 comentarios / 141173 Visitas

      • 5,242
      • mensajes
      • miembro desde
      • 17/02/02
    27/10/2004
    #2 Re: [Visual Basic 6.0] Consulta conexión con base de datos.

    DAO es el predecesor de ADO..

    bueno empezamos con el codigo... es simple... si bien el ADODC no te gusta es esa barrita fea segun vos... la pones pones propiedades y creas la cadena de conexion y la copias, asi te aseguras q esta bien...
    bue depues en el codigo del formulario, vos te fijaras el evento donde lo pones y si queres q sea global o no...

    tenes q ir a referencias y agregar el microsoft activex data objects 2.7 o 2.8 segun la q tengas.. o anteriores... nose cual tendras... si queres de microsoft te podes bajar la 2.8

    dim miconexion as new adodb.connection
    dim mirecordset as new adodb.recordset

    miconexion.connectionstring = "al string q genero el adodc"
    miconexion.open

    recordset.open "el comando sql q quieras (select * from empleados)", miconexion, adOpenDynamic, adLockOptimistic (las ultimas 2 opciones fijate cuales queres.)

    listo en el recordset tenes todos los datos cargados...

    cuando no lo queres usar mas...

    miconexion.close
    set miconexion = nothing
    mirecordset.close
    set mirecordset = nothing

    y listo... todo terminado...

    saluteeeee... sorry si no fui claro...
    nose explicar bien, pero quiero aportar... en lo q pueda...

      • 5,546
      • mensajes
      • miembro desde
      • 07/11/02
    27/10/2004
    #3 Re: [Visual Basic 6.0] Consulta conexión con base de datos.

    Desde ya muchas gracias!

    Con respecto al ADODC, creo que es más cuestión de gustos, al venir de C o Visual FoxPro donde te conectas por codigo por ahi viene la cosa nusé

    Mi idea era basicamente armar un Modulo donde tengo las distintas funciones [Conectar - Consultar (enviar el string SQL, para realizar: Consulta, Insertar, Modificar o Eliminar) - y cerrar] creo que con esto es más que suficiente.

    Ahora te hago un par de sonsultas con respecto a lo que me pusiste el resto se entendió perfectamente:

    miconexion.connectionstring = "al string q genero el adodc"
    Al string ese no entiendo cual haces referencia

    recordset.open "el comando sql q quieras (select * from empleados)", miconexion, adOpenDynamic, adLockOptimistic (las ultimas 2 opciones fijate cuales queres.)
    El primer parametro es el string con la sentencia SQL, el Segundo la conexión que cree en un principio, las 2 ultimas no se que son.

    Desde ya muchisimas gracias troesma!!
      • 5,242
      • mensajes
      • miembro desde
      • 17/02/02
    27/10/2004
    #4 Re: [Visual Basic 6.0] Consulta conexión con base de datos.

    bueno empezemos, arriba antes de q te diga el string q te tira ADODC, es porq te puse q crees la cadena de conexion con este, y la copies... asi sabes q esta bien bien echa...
    porq la verdad q de memoria no me la acuerdo...
    si vos sabes como hacer la cadena de conex.. no problema escribila vos y listo...

    los 2 datos siguientes, cuando tocas las comas correspondientes te abre la listita con las opciones, cada una de esas opciones tiene 4, yo te tire las mas recomendables, pero no son las mejores dependiendo del caso.. fiajte en la ayuda de VB 6 q tenes una descripcion de cada una... es bastante simple..

    cualquier cosa just,... ask...

      • 5,546
      • mensajes
      • miembro desde
      • 07/11/02
    05/11/2004
    #5 Re: [Visual Basic 6.0] Consulta conexión con base de datos.

    Acá dejo el codigo que escribí, todavia no cree la base de datos asique no lo puede probar, pero me gustaría que me digan si se lo puede optimizar un poco o algunas idas con respecto al codigo.
    Es un modulo. La llamado AccessDB.bas, donde hay 4 funciones:
    1. Abrir la conexión
    2. Consultas SQL
    3. Ingreso de Actualizaciones hacia la BD (Ingreso de un nuevo Registro, Modificación de un registro, Eliminacion de un registro)
    4. Cerrar la conexion.

    Cita Escrito por AccessBD.bas
    Option Explicit
    Public AccessConexion As ADODB.Connection

    Public Function AbrirConexion(NombreBD As String)
    '_________________________________________________ ___________________________
    'Esta función lo que permite es abrir y establecer la conección con Access.
    '_________________________________________________ ___________________________
    Dim ErrorBD As ADODB.Error
    On Error GoTo Error
    Set AccessConexion = New ADODB.Connection

    With AccessConexion
    .ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & App.Path & "\Base de Datos\" & NombreBD & ";"
    .Open
    End With

    Exit Function

    Error:
    For Each ErrorBD In AccessConexion.Errors
    MsgBox ("Error VB:" & ErrorBD.Number & vbCrLf _
    & "Error Access:" & ErrorBD.NativeError & vbCrLf _
    & "Error SQL:" & ErrorBD.SQLState & vbCrLf _
    & "Generado Por:" & ErrorBD.Source & vbCrLf _
    & "Descripción:" & ErrorBD.Description)
    Next
    End Function

    Public Function ConsultaSQL(StrSQL As String) As Recordset
    '_________________________________________________ _________________________________________
    'Esta función lo que hace es ejecutar una consulta SQL y devolver el resultado de la misma
    '_________________________________________________ _________________________________________
    Dim ErrorBD As ADODB.Error
    On Error GoTo Error

    Set ConsultaSQL = New Recordset

    ConsultaSQL.Open StrSQL, AccessConexion, OpenDynamic, adLockOptimistic

    Exit Function

    Error:
    For Each ErrorBD In AccessConexion.Errors
    MsgBox ("Error VB:" & ErrorBD.Number & vbCrLf _
    & "Error Access:" & ErrorBD.NativeError & vbCrLf _
    & "Error SQL:" & ErrorBD.SQLState & vbCrLf _
    & "Generado Por:" & ErrorBD.Source & vbCrLf _
    & "Descripción:" & ErrorBD.Description)
    Next

    End Function

    Public Function ActualizarBD(StrSQL As String, StrBaseDatos As String) As Recordset
    '_________________________________________________ __________________________________________________ ____________
    'Esta funcion actualiza la base de datos ya sea el agregado de un nuevo registro como modificacion o eliminacion
    '_________________________________________________ __________________________________________________ ____________

    Dim ErrorBD As ADODB.Error
    On Error GoTo Error

    Set ActualizarBD = New Recordset
    ActualizarBD.Open
    ActualizarBD = AccessConexion.Execute(StrSQL)
    ActualizarBD.Update

    Exit Function

    Error:
    For Each ErrorBD In AccessConexion.Errors
    MsgBox ("Error VB:" & ErrorBD.Number & vbCrLf _
    & "Error Access:" & ErrorBD.NativeError & vbCrLf _
    & "Error SQL:" & ErrorBD.SQLState & vbCrLf _
    & "Generado Por:" & ErrorBD.Source & vbCrLf _
    & "Descripción:" & ErrorBD.Description)
    Next
    End Function
    Public Function cerrarconexion()
    '_________________________________________________ ___________________
    'Esta función lo que hace es cerrar la conexión con la base de datos.
    '_________________________________________________ ___________________
    Dim ErrorBD As ADODB.Error
    On Error GoTo Error

    AccessConexion.Close
    Set AccessConexion = Nothing

    Exit Function

    Error:
    For Each ErrorBD In AccessConexion.Errors
    MsgBox ("Error VB:" & ErrorBD.Number & vbCrLf _
    & "Error Access:" & ErrorBD.NativeError & vbCrLf _
    & "Error SQL:" & ErrorBD.SQLState & vbCrLf _
    & "Generado Por:" & ErrorBD.Source & vbCrLf _
    & "Descripción:" & ErrorBD.Description)
    Next

    End Function
    Desde ya muchas gracias!
      • 5,242
      • mensajes
      • miembro desde
      • 17/02/02
    05/11/2004
    #6 Re: [Visual Basic 6.0] Consulta conexión con base de datos.

    parece estar bien
    lo q me parece al pedo... es q tengas un procedimiento q le pases todo el SQL... va q se yo... ta bien... no te calentes tanto..

    yo creo q esta bien...

      • 1
      • mensajes
      • miembro desde
      • 01/07/10
    01/07/2010
    #7 Re: [Visual Basic 6.0] Consulta conexión con base de datos.

    hola señores, vera tengo una pregunta tengo una base de datos en red y me quiero conectar desde otro equipo y me sale lo siguiente:

    ---------------------------
    inventarios
    ---------------------------
    Error: -2147467259: El motor de base de datos Microsoft Jet no puede abrir el archivo '\\VETPC\inventarios\inventarios.mdb'. Está abierto en modo exclusivo por otro usuario o bien necesita permiso para ver sus datos.
    ---------------------------
    Aceptar
    ---------------------------

    a demas esta no se encuentra abierta.

    si alguien me puede colaborar les agradezco, de antemano gracias...