Visual Basic - Ayuda por dios

Life is soft - evento anual de software empresarial
 
Vista:

Ayuda por dios

Publicado por Germany (53 intervenciones) el 09/04/2006 04:39:03
tengo el siguiente numero de error
el 13 y dice q no coinciden los tipos pero la verdad no le hayo el error por favor ayudenme
aca estan las lineas de codigo
-----------------------------
Dim dbs As Database, rst As Recordset
Set dbs = OpenDatabase(App.Path & "\alquiler_97.mdb")
If Text1.Text <> "" Then
dbs.Execute " INSERT INTO alquiler " _
& "(expediente,locall,ano,nombre_pro,apellido_pro,telefono_pro,telefono2_pro,edificio,inquilino,alquiler,locall2,telefono_in,fecha,ano2,enero,febrero,mazo,abril,mayo,junio,julio,agosto,septiembre,octubre,noviembre,diciembre,observacion) VALUES " _
& "('" & Text1 & "','" & Text2 & "','" & Text3 & "','" & Text4 & "','" & Text5 & "','" & Text6 & "','" & Text7 & "','" & Text8 & "','" & Text9 & "','" & Text10 & "','" & Text11 & "','" & Text12 & "','" & Text13 & "','" & Text14 & "','" & Text15 & "','" & Text16 & " ','" & Text17 & "','" & Text18 & "','" & Text19 & "','" & Text20 & "','" & Text21 & "','" & Text22 & "','" & Text23 & "','" & Text24 & "','" & Text25 & "','" & Text26 & "', '" & Text27 & "');"
Set rst = dbs.OpenRecordset("SELECT expediente, " _
& "locall," & "ano FROM alquiler " _
& "ORDER BY expediente & locall & ano ASC;")
rst.MoveLast
MsgBox "Datos Guardados", vbInformation + vbOKOnly, "Información"
Else
MsgBox "No hay Datos que Guardar,Ingrese Número de Expediente", vbCritical + vbOKOnly, "Información"
Text1.SetFocus
End If
-------------
el error se posiciona es
Set rst = dbs.OpenRecordset("SELECT expediente, " _
& "locall," & "ano FROM alquiler " _
& "ORDER BY expediente & locall & ano ASC;")
..
en la base de datos todos los campos son de tipo texto
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de alberto
Val: 594
Bronce
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

RE:Ayuda por dios

Publicado por alberto (359 intervenciones) el 09/04/2006 07:54:27
¿Tienes como referencia del proyecto ADO?
Si es así la sentencia:
Dim dbs As Database, rst As Recordset
Crea rst como un recordset ADO y la sentencia:
dbs.OpenRecordset("SELECT expediente, " _
& "locall," & "ano FROM alquiler " _
& "ORDER BY expediente & locall & ano ASC;")
crea una instancia de un Recordset DAO que no se puede asignar a rst, ya que los tipos no coinciden.

Si este es el problema, para solucionarlo puedes hacer dos cosas:
1.- Si no usas ADO en el resto del código, elimina la referencia.
2.- Sustituye la sentencia:
Dim dbs As Database, rst As Recordset
por:
Dim dbs As Database, rst As DAO.Recordset
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda por dios

Publicado por Ramiro (32 intervenciones) el 09/04/2006 09:31:37
¿Y no será que lo que está mal son los separadores de línea?. Ponlo así:
Set rst = dbs.OpenRecordset("SELECT expediente, " & _
"locall," & "ano FROM alquiler " & _
"ORDER BY expediente & locall & ano ASC;")
Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda por dios

Publicado por Germany (53 intervenciones) el 09/04/2006 15:27:01
bueno muchas gracias por la ayuda hice las dos sugerencias y nada que ver
alberto si uso la refencia adod en ese mismo form espero con ansias la ayuda por fa !
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda por dios

Publicado por Ramiro (32 intervenciones) el 09/04/2006 19:52:26
Modifica la cláusula ORDER BY sustituyendo "&" por ",":
Set rst = dbs.OpenRecordset("SELECT expediente, " _
& "locall," & "ano FROM alquiler " _
& "ORDER BY expediente, locall, ano ASC;")
(Aunque ASC no es necesario ya que la sentencia la toma por defecto)
Esperemos que así funcione.
Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de alberto
Val: 594
Bronce
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

RE:Ayuda por dios

Publicado por alberto (359 intervenciones) el 13/04/2006 10:45:52
¿Has utilizado la sentencia:
Dim dbs As Database, rst As DAO.Recordset ?
Ya que si como comentas usas ADODB como referencia, esta es la solución.

Si miras en la lista de referencias de tu proyecto la referencia ADODB, casi con toda seguridad, aparece antes que la referencia a DAO, con lo cual el compilador cuando se encuentra con la sentencia:
Dim dbs As Database, rst As Recordset
encuentra primero la referencia a ADODB, y crea un ADODB.Recordset, naturalmente, este no coincide en tipo con un DAO.Recordset que es lo que devuelve la sentencia dbs.OpenRecordset de DAO.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda por dios

Publicado por Pedro Luis (878 intervenciones) el 10/04/2006 13:14:55
No dices en que momento te da error.
Sería conveniente que ejecutaras paso a paso y lo detectaras.
No encuentro muy normal que año y alquiler esten definidos como texto, porque o es así como lo guardas, si son numéricos quita las comillas simples.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda por dios

Publicado por Germany (53 intervenciones) el 10/04/2006 18:30:35
Les cuento!
estoy utilizando el manifest en mi programa y encerraba todo en un picturebox y esto genero conflictos incluso los text no los leia decia q no se encontraban en la bibloteca pero ya lo solucione de forma tal de poder utilizar el estilo xp en mis programas siemplemente lo aplico en los buttons y usoComCtl32.dll versión 5
Gracias por vuestra ayuda!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar