instruccion SQL en Visual Basic

sombradorada
17 de Octubre del 2003
que esta mal en esta instruccion, no he podido realizar la consulta

Registros.Open "select vehiculos.placa, vehiculos.marca, vehiculos.modelo, vehiculos.motor, vehiculos.matricula, vehiculos.servicio, facturas.[fecha factura], facturas.[fecha factura], vehiculos_parametros_facturas.codigo, parametros.hidrocarburos2, parametros.monoxido2, parametros.bioxido2, parametros.oxigeno2, parametros.opacidad2 from (vehiculos inner join (pruebas inner join vehiculos_pruebas_transitos on pruebas.prueba = vehiculos_pruebas_transitos.prueba) on vehiculos.placa = vehiculos_pruebas_transitos.placa) inner join (parametros inner join (facturas inner join vehiculos_parametros_facturas on facturas.factura = vehiculos_parametros_facturas.factura) on parametros.codigo = vehiculos_parametros_facturas.codigo) on vehiculos.placa = vehiculos_parametros_facturas.placa where mid(facturas.[fecha factura]4,2)='" & TxtMes.Text & "' and mid(facturas.[fecha factura]7,4)='" & TxtAño.Text & "' and vehiculos_parametros_facturas.reprobo=true"

Baltasar
17 de Octubre del 2003
Anda que menuda prueba nos estás haciendo!

Tal y como yo lo veo, la sentencia Join está mal construida, por lo menos para Visual Basic. La manera de hacerlo es:

select campos from tabla1 inner join tabla2 on tabla2.campoA=tabla1.campoB where . . . . .

si quieres agregar más anidaciones, quedaría:

select campos from tabla1 inner join tabla2 (inner join tabla3 on tabla3.campoC=tabla2.campoD) on tabla2.campoA=tabla1.campoB where . . . . .

Pero veo que tras el FROM pones un paréntesis, y al cerrar ese paréntesis agregas otro INNER JOIN, y tanto el paréntesis primero como este INNER JOIN se saltan las "normas"

Si me explicas cuales son los enlaces de tus tablas y las intenciones de la sentencia, te la intentaría resolver.

Saludos