SoloCodigo
Programación General => Visual Basic 6.0 e inferiores => Mensaje iniciado por: MiguelPG en Domingo 18 de Mayo de 2003, 21:14
-
Hola a todos.
Tengo un problema en la apertura de un recordset mediante una consulta SQL que no acabo de entender.
Lo que ocurre es lo siguiente:
Hago la consulta cuyo código reproduzco abajo y todo va muy bien, menos al intentar actualizar o añadir nuevos registros ya que incomporensiblemente, al menos para mi, me dice que NO SE PUEDE ACTUALIZAR PORQUE EL OBJETO ES DE SOLO LECTURA.
cSQl = "SELECT Volumenes.idVolumen, Volumenes.Titulo, Volumenes.idAutor, Volumenes.idDirector, Volumenes.idInterprete, "
cSQl = cSQl + "Volumenes.idTipoMusica , Volumenes.Anyo, Volumenes.Soporte, Volumenes.Caratula, Volumenes.Prestado, "
cSQl = cSQl + "Volumenes.Dejado, Volumenes.Devuelto, Volumenes.Telefono, Volumenes.Movil, Volumenes.Notas, "
cSQl = cSQl + "Autores.Nombre, Autores.Apellidos, "
cSQl = cSQl + "Directores.Nombre , Directores.Apellidos, "
cSQl = cSQl + "Interpretes.Nombre, Interpretes.Apellidos, "
cSQl = cSQl + "TipoMusica.TipoMusica "
cSQl = cSQl + "FROM ((Directores INNER JOIN (Autores INNER JOIN Volumenes ON Autores.idAutor = Volumenes.idAutor) "
cSQl = cSQl + "ON Directores.idDirector = Volumenes.idDirector) INNER JOIN Interpretes "
cSQl = cSQl + "ON Volumenes.idInterprete = Interpretes.idInterprete) INNER JOIN TipoMusica "
cSQl = cSQl + "ON Volumenes.idTipoMusica = TipoMusica.idTipoMusica"
Set rstVolumen = dbMusica.OpenRecordset(cSQl & " ORDER BY format(idvolumen,'0000')", dbOpenDynaset)
Por favor, si alguien ve la causa le agradeceré que me lo haga saber. Me trae loco.
:jumpie:
-
Hola, Miguel:
Yo no veo nada sospechoso en tu forma de abrir los ficheros... Unicamente cabe aceptar que, por mor de las meigas..., tu bd haya tomado la propiedad de "Sólo lectura"... Esto me trajo por la calle de la Amargura en una ocasión, hasta que me enteré de que haciendo un trasvase de ficheros de un equipo a otro por medio de un CD, en el equipo-destino me los definía como de sólo lectura (característica que aplica automáticamente en algunas grabaciones en CD)... No sea que a ti te esté jugando alguna mala pasada de este tipo...
Saludos y que te dure poco el sarampión...
-
¿Cómo abres la Base de Datos?, el problema puede estar ahí.
:suerte:
-
Hola Angeles.
Gracias por responder a mi pregunta.
La base de datos la abro así:
Set dbMusica=OpendDatabase("MiPathMusica.mdb")
Yo pienso que el problema debe de estar en la SQL, pués cuando abro el recordset utilizando menos tablas relacionadas, me permite editar y actualizar sin problemas.
Saludos.
-
Por fín lo encontré.
Os digo lo que era por si a alguno le ocurriera lo mismo.
El error estaba en que en algunas de las tablas que componen la SQL no había definido un campo clave principal y, por lo tanto, la SQL no "sabía" como relacionar adecuadamente las tablas.
Gracias a todos por vuestra ayuda.:jumpie: