Tema: consulta sql
Ver Mensaje Individual
  #4 (permalink)  
Antiguo 21/11/2009, 10:06
Avatar de gogupe
gogupe
 
Fecha de Ingreso: octubre-2006
Ubicación: Mallorca
Mensajes: 897
Antigüedad: 18 años, 6 meses
Puntos: 32
Respuesta: consulta sql

Hola, creo que tienes un poco mal los conceptos de Base de datos.

¿cuando dices dos base de datos, empleados y ciudades?, te refieres a dos tablas dentro de una bd ¿no?, ya que si no lo vería ilógico, usar dos base de datos para tal fin, sería un desastre para programarlo, tendrías que hacer dos conexiones totalmente inutiles.

Luego, como no veo bien la extructura de tus, llamemos tablas, yo te propongo que la hagas asi, es como lo haría yo.

Empleados
id
Nombre
apellidos
dni
direccion
id-ciudad

ciudades
id
ciudad


Para enlazar las dos tablas por el campo ciudad, tienes que usar la sentencia Sql INNER JOIN, que sería la siguiente:

Código:
SELECT * FROM empleados INNER JOIN ciudades ON empleados.id-ciudad = ciudades.id
De esta forma selecionas todo de la dos tablas, relacionado la id de la ciudad, si quieres ser mas preciso, puede usar lo siguiente, para mostrar los datos que realmente quieres.

Código:
SELECT empleados.nombre, empleados.apellidos, empleados.dni, empleados.direccion,ciudades.ciudad FROM empleados INNER JOIN ciudades ON empleados.id-ciudad = ciudades.id
Ahora, la forma de ejecutarlo en VB6, te lo pongo tal cual lo uso yo.

Añade la referencia, haz lo siguiente:
Proyecto-->Referencias-->Microsoft Active Data Objects (la ultima version que tengas)


Código en form
Código:
Private Sub Form_Load()
Set Conexion = New ADODB.Connection
Set Rst = New ADODB.Recordset

Conexion.ConnectionString = "driver={MySQL ODBC 3.51 Driver};server=mi_servidor;uid=usuario_mysql;pwd=password_mysql;database=nombre_base_datos"
Conexion.Open


Rst.ActiveConnection = Conexion
Rst.CursorLocation = adUseClient
Rst.CursorType = adOpenDynamic
Rst.LockType = adLockBatchOptimistic

End Sub
Código de un modulo.bas
Código:
Public Conexion As ADODB.Connection
Public Rst As ADODB.Recordset


Para ejecutar la sentecia que te puse antes, tienes que poner
Código:
if rst.state = 1 then rst.close
rst.open "SELECT ......."

Para que esto te funcione, te tienes que bajar de internet el driver ODBC 3.51 de mysql.

Espero que te sirva si tienes cualquier duda, postea

Saludos.