PDA

Ver la Versión Completa Con Imagenes : Como conectar Visual Basic con una base de datos de Access o SQL Server 2000


Ayudante De Santa
06-11-2015, 22:19:08
Los mejores licores
MrHouseLight
27-01-2011, 15:23:02
Hola!! Como el titulo dice, les mostrare como conectar su programa en Visual Basic a una base de datos en Access o SQL server 2000 mediante líneas de código y no mediante controles OCX, las ventajas de este tipo de conexión es que se evita colocar un control en cada lugar donde necesitas una conexión ya que esta conexión puede ser llamada desde cualquier parte del programa, lo que hace tu vida mas fácil, ahora vamos a los pasos, para esto hay dos cosas importantes que hay que hacer, el orden en que se haga no importa, una es agregar un modulo para el código y la referencia a las librerías.

Crear proyecto EXE o abrir uno que ya tengas trabajado
Crear un nuevo modulo con el menú: Proyecto > Agregar modulo

http://img833.imageshack.us/img833/9306/10222730.gif

En la nueva ventana selecciona Modulo dar click en Abrir

http://img90.imageshack.us/img90/7501/80408970.gif

Bueno ya tenemos el modulo donde iremos colocando el código ahora haremos la referencia a las librerías.

Vamos a menú Proyecto > Referencias

http://img340.imageshack.us/img340/4020/66301250.gif

Y en la lista de la nueva ventana buscamos “Microsoft ActiveX Data Objects 2.7” Library y ya que la encontramos, la seleccionamos y damos click en Aceptar

http://img827.imageshack.us/img827/5634/73398818.gif

Ya con todo listo vamos al código, como dije antes, el código se colocara dentro del modulo y será de a siguiente forma

Public RBASEDDATOS As ADODB.Connection
Public RTABLA1 As ADODB.Recordset
Public RTABLA2 As ADODB.Recordset
. . .
Public RTABLAN As ADODB.Recordset

Ok, explico, RBASEDDATOS, RTABLA1, RTABLA2 son variables, la primera es la única que es de tipo “Connection” ya que mas adelante a través de ella haremos la conexión, las otras dos son tipo “Recordset” las cuales hacen referencia a las tablas, como toda variable se pueden llamar de la manera que gustes, pero de preferencia que tengan que ver con el contenido, RTABLAN es para decir que pueden colocar tantas líneas como tablas deseen conectar. Es decir si quieren conecar 5 tablas tienen que tener 5 líneas como esta Public RTABLA1 As ADODB.Recordset obviamente con diferentes nombres, el siguiente código va después de eso que ya mostre.

Public Function ConexionBD()
Set RBASEDDATOS = Nothing
Set RTABLA1 = Nothing
Set RTABLA2 = Nothing
. . .
Set RTABLAN = Nothing

Set RBASEDDATOS = New ADODB.Connection
Set RTABLA1 = New ADODB.Recordset
Set RTABLA2 = New ADODB.Recordset
. . .
Set RTABLAN = New ADODB.Recordset

AQUÍ VA LA LINEA DE CONEXIÓN DEPENDIENTE DE LA BASE DE DATOS QUE MANEJES

RTABLA1.Open "select * from TABLA1", RBASEDDATOS, adOpenDynamic, adLockOptimistic
RTABLA2.Open "select * from TABLA2", RBASEDDATOS, adOpenDynamic, adLockOptimistic
. . .
RTABLAN.Open "select * from TABLAN", RBASEDDATOS, adOpenDynamic, adLockOptimistic

End Function

Bueno ahora solo explicare cada una de los 3 tipos de instrucciones que están ahí
Líneas verdes, asignan un valor NULO a cada variable.

Lineas rojas, crean un objeto dentro de cada variable, el tipo de objeto será el mismo tipo que el valor declarado en la primer parte del código

Líneas azules, esta parte es la que conecta cada variable con la tabla que le corresponde, en la parte que dice “select * from TABLA1” sustituyen TABLA1 por el nombre de la tabla que quieran y RBASEDDATOS es la variable creada de tipo “Connection” que igual sebe ser sustituido por lo que ustedes colocaron.

Ya con eso lo falta la línea de conexión.

Access: <- Esta linea no va en el codigo, solo es para indicar a que tipo de conexion pertenece
RBASEDDATOS.Open "Provider=Microsoft.Jet.OLEDB.3.51; Data Source=" & App.Path & "\nombrebasedetaos.mdb" & ";"

SQL Server 2000: <- Esta linea no va en el codigo, solo es para indicar a que tipo de conexion pertenece
RBASEDDATOS.Open "provider=SQLOLEDB; Initial Catalog= nombrebasedetaos; Data Source= localhost; integrated security=SSPI; persist security info=True;"

En ambas líneas esta presente “nombrebasedetaos” el cual tiene que ser sustituido por el nombre de la base de datos que quieren conectar

Nota: en el caso de la línea de Access, App.Path se usa para indicar
que a base de datos esta en la misma carpeta que el sistema que estamos
creando lo cual es lo mas recomendable.

Ahora ya que esta todo listo, solo tienes que colocar ConexionBD() que es el nombre de la
función creada en el evento FORM_LOAD de tu formulario inicial, y para hacer acciones sobre la base de datos solo tienes que colocar, por ejemplo: RTABLA2 y un punto, lo cual desplegara un menú con todas las opciones, les recuerdo que RTABLA2 solo es una variable que hace referencia a la tabla y que el nombre depende de lo que han colocado ustedes.
Eso seria todo, se que se ve largo pero verán al hacerlo que no lo es tanto.
Para dudas y comentarios háganlos por aquí
:cheers: :cheers:

Ayudante De Santa
06-11-2015, 22:19:08
Los mejores licores
ARICARRARO
28-01-2011, 13:18:31
Buen ejemplo, sencillo y claro de entender.

0_o

Frank Lucas
03-03-2011, 14:46:50
gracias voi a probar

alejan777
23-03-2011, 01:05:26
gracias por el aporte

elsolodigno
23-03-2011, 19:47:07
buen aporte...