## http://www.lawebdelprogramador.com ## ## RESPUESTA A LA PREGUNTA 1122 - ACCESS ## ## fredy rivera friveramon@yahoo.com.mx ## Este ejemplo realiza una consulta a una base de datos oracle mediante DAO (Microsoft DAO 3.51 Object Library) y ODBC. Para ejecutarlo correctamente se deben seguir los siguientes pasos: 1. Guardar todos los archivos de este programa ejemplo (*.vbp, *.frm, *.bas) en alguna carpeta del disco duro 2. Instalar en el cliente los drivers de ODBC de Oracle, por ejemplo instalando un cliente oracle (SQL * Plus...) 3. Ir al panel de control 4. Ira ODBC 5. En la pestaña DSN de sistema, pulsar "Agregar" 6. Seleccionar "Oracle ODBC Driver" y pulsar "Finalizar" 7. Escribir algún identificativo en "Data Source Name" y pulsar "OK" 8. Ejecutar el proyecto Visual Basic 9. Si la conexión es a la base de datos por defecto, el parámetro "Connect" del OpenDatabase puede especificarse como: DSN=oracle;odbc;uid=scott;pwd=tiger 10. Si la conexión es a una base de datos remota, el parámetro "Connect" del OpenDatabase puede especificarse como: DSN=oracle;odbc;database=ORCL@tcp-loopback;uid=scott;pwd=tiger 11. donde tcp-loopback es un identificativo de cadena de conexión del fichero tnsnames.ora Tcp-loopback.world = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP) (Host = 127.0.0.1) (Port = 1521) ) ) (CONNECT_DATA = (SID = ORCL) ) ) Código fuente A continuación se muestra el código de los ficheros que componen el proyecto dao_ora.vbp Type=Exe Reference=*\G{00025E01-0000-0000-C000-000000000046}#4.0#0#C:\Archivos de programa\Archivos comunes\Microsoft Shared\DAO\DAO350.DLL#Microsoft DAO 3.51 Object Library Form=dao_ora.frm Startup="frm_dao_ora" HelpFile="" Command32="" Name="dao_ora" HelpContextID="0" CompatibleMode="0" MajorVer=1 MinorVer=0 RevisionVer=0 AutoIncrementVer=0 ServerSupportFiles=0 VersionCompanyName="Universidad de Deusto" CompilationType=0 OptimizationType=0 FavorPentiumPro(tm)=0 CodeViewDebugInfo=0 NoAliasing=0 BoundsCheck=0 OverflowCheck=0 FlPointCheck=0 FDIVCheck=0 UnroundedFP=0 StartMode=0 Unattended=0 ThreadPerObject=0 MaxNumberOfThreads=1 dao_ora.frm VERSION 5.00 Begin VB.Form frm_dao_ora Caption = "frm_dao_ora" ClientHeight = 1395 ClientLeft = 60 ClientTop = 345 ClientWidth = 3465 LinkTopic = "vb0001_1" ScaleHeight = 1395 ScaleWidth = 3465 StartUpPosition = 3 'Windows Default End Attribute VB_Name = "frm_dao_ora" Attribute VB_GlobalNameSpace = False Attribute VB_Creatable = False Attribute VB_PredeclaredId = True Attribute VB_Exposed = False Option Explicit Dim db1 As Database Private Sub Form_Load() Dim rs1 As Recordset 'Set db1 = OpenDatabase("oracle", False, False, "DSN=oracle;odbc;database=ORCL@tcp-loopback;uid=scott;pwd=tiger") Set db1 = OpenDatabase("oracle", False, False, "DSN=oracle;odbc;uid=scott;pwd=tiger") Set rs1 = db1.OpenRecordset("emp", dbOpenSnapshot) MsgBox rs1(0) & "-" & rs1(1) & "-" & rs1(2) rs1.MoveNext MsgBox rs1("EMPNO") & "-" & rs1("ENAME") & "-" & rs1("JOB") rs1.MovePrevious MsgBox rs1("EMPNO") & "-" & rs1("ENAME") & "-" & rs1("JOB") End End Sub