Cita:
Iniciado por CésarBalaguer
Sobre este mensaje:
-------------------
Ahora veamos la sugerencia:
Cita:
strSql = "SELECT Interprete_Artista "
strSql = strSql & "FROM TABLA_1 INNER JOIN TABLA_2 ON "
strSql = strSql & "(TABLA_1.INTERPRETEIDTEMA=TABLA2.IDTEMA) "
set mADO = conn.execute(strSql)
Este Query nos regresa todas las filas de Tabla_1 y Tabla_2 donde sus campos INTERPRETEIDTEMA y IDTEMA respectivamente sean iguales, pero no es lo que el ciclo original quiere:
Cita:
Do While Cint (Tabla_1.Fields ("InterpreteIDTEMA"))=Cint (Tabla_2.Fields ("IdTema")) AND Not Tabla_1.Eof %>
----------------------*
si se dan cuenta, en el while iguala tabla1(interpreteidtema) con tabla2(idtema) es decir, la condiciòn es que la columna de la base de datos interpreteidtema de la tabla1 sea igual a la columna idtema de la tabla2; (eso es solucionable con un JOIN, luego viene una condiciòn tabla1.EOF, eso no es una condicion sino el estado de un cursor, eso devuelve un valor lògico que indica si el cursor està al final del archivo, cosa que facilmente podrìa ser condiciòn ùnica del while si la primera pregunta forma parte del query.
en programaciòn, mientras menos preguntas se hagan, màs ràpido es el programa.
Pues no le veo el JOIN por ningún lado
Cita: la condiciòn es que la columna de la base de datos interpreteidtema de la tabla1 sea igual a la columna idtema de la tabla2;
La condición es que es que la columna de la base de datos interpreteidtema de la tabla1 sea igual
al valor que tiene el campo idTema de la tabla2 en el registro que este posicionado.
Con ese código no se sabe que operaciones hizo el usuario para posicionar el cursor de Tabla_2 en el registro en el que esta. No le veo el JOIN, insisto.