++++CONSULTA EN DBGRID++++

04/07/2003 - 00:02 por µ···Åã¢çë¦l···µ | Informe spam
Alguine sabe cual es la forma correcta de hacer una consulta (SQL) que
incluya varios campos de dos tablas contenidadas en un archivo de BD's
Access 97. Lo que quiero hacer es: colocar en un DBGRID los campos ID,
Nombre, apellido de la tabla ALUMNOS y f_pago, pago, adeudo de la tabla de
COLEGIATURAS, obviamente a acada alumno le corresponde una colegiatura.

Con SQL Server no hay ningún problema, el problema está en que el usuario no
tendrá SQL server así que se me ocurre hacerlo con ADO pues sé que puede
hacer esto... la pregunta es ¿COMO? es decir como sería la cedena de
conexión, provedor etc..

Y también si me pudiran decir como creo la misma BD de Access 97 mediante
código.

Espero que puedan ayudarme, GRACIAS!
 

Leer las respuestas

#1 Softjaen
04/07/2003 - 01:05 | Informe spam
"µ···Åã¢çë¦l···µ" escribió:

Mostrar la cita
Hola:

Mientras que ambas tablas tengas una relación de «uno a varios» entre el
campo «ID», común en ambas tablas, la consulta SQL podría ser ésta:

SELECT Alumnos.Id, Alumnos.Nombre, Alumnos.Apellido,
Colegiaturas.f_pago, Colegiaturas.pago, Colegiaturas.adeudo
FROM Alumnos INNER JOIN Colegiaturas ON Alumnos.Id = Colegiaturas.Id

En la tabla «Alumnos», la clave principal debe ser el campo «ID», y en la
tabla «Colegiaturas», no hace falta que haya una clave principal, pero si la
hay, que no corresponda con el campo «ID» de la tabla «Colegiaturas».

Mostrar la cita
Si vas a utilizar la biblioteca de ADO, olvídate de utilizar el control
«DBGRID». En su lugar, utiliza el control «DataGrid». Aquí tienes un pequeño
ejemplo para conectarte con la base de datos:

Dim cnn As ADODB.Connection
Dim rst As ADODB.Recordset
Dim SQL As String

SQL = "SELECT Alumnos.Id, Alumnos.Nombre, Alumnos.Apellido, " & _
"Colegiaturas.f_pago, Colegiaturas.pago, Colegiaturas.adeudo " & _
"FROM Alumnos INNER JOIN Colegiaturas ON Alumnos.Id = Colegiaturas.Id"

' Establecemos la conexión con la base de datos
Set cnn = New ADODB.Connection
With cnn
.Provider = "Microsoft.Jet.OLEDB.4.0"
.ConnectionString = "C:\bd1.mdb"
.Open
End With

' Configuramos el Recordset
Set rst = New ADODB.Connection
With rst
' Utilizamos cursores del lado cliente
.CursorLocation = adUseClient

.CursorType = adOpenStatic
.LockType = adLockOptimistic

' Abrimos el Recordset
.Open SQL, cnn, , , adCmdText
End With

' Enlazamos el Recordset al control Datagrid
Set DataGrid1.DataSource = rst

Mostrar la cita
Ya que vas a utilizar la biblioteca de ADO, para crear una base de datos
Access tendrás que utilizar la biblioteca de ADOX. Te dejo la dirección de
unos «tips» que te vendrán muy bien.

Tips de ADOX
http://es.geocities.com/softjaen/ti.../index.htm

Un saludo.

Enrique Martínez
[MS MVP - VB]

Desde hoy, las ciudades jienenses de Úbeda y Baeza son Patrimonio de la
Humanidad. Felicidades a mis paisanos. :-)

Preguntas similares