Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

No coinciden los tipos :S

Estas en el tema de No coinciden los tipos :S en el foro de Visual Basic clásico en Foros del Web. wenas, wenas estem.. yo tengo este codigo: Option Explicit Dim db As Database Dim rs As Recordset Private Sub Command1_Click() Set db = DBEngine.Workspaces(0).OpenDatabase("C:\Orden 1.0\Base ...
  #1 (permalink)  
Antiguo 23/06/2009, 18:55
 
Fecha de Ingreso: junio-2009
Mensajes: 11
Antigüedad: 14 años, 10 meses
Puntos: 0
No coinciden los tipos :S

wenas, wenas
estem.. yo tengo este codigo:

Option Explicit
Dim db As Database
Dim rs As Recordset


Private Sub Command1_Click()
Set db = DBEngine.Workspaces(0).OpenDatabase("C:\Orden 1.0\Base de datos\Ordenes.mdb")
Set rs = db.OpenRecordset("Proveedores")

End Sub

y ya me tira un "error 13 type mistache" en Set rs = db.OpenRecordset("Proveedores")
ayuda! :S:S:S
gracias x adelantado
  #2 (permalink)  
Antiguo 23/06/2009, 21:18
Avatar de javyjaja  
Fecha de Ingreso: diciembre-2008
Ubicación: cedral S.L.P.
Mensajes: 81
Antigüedad: 15 años, 4 meses
Puntos: 3
Respuesta: No coinciden los tipos :S

pues donde dice "Proveedores" deve d eir una instruccion sql , o que es?
  #3 (permalink)  
Antiguo 23/06/2009, 21:25
 
Fecha de Ingreso: junio-2009
Mensajes: 11
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: No coinciden los tipos :S

SISI!! yo antes habia puesto (SELECT * FROM proveedores) y no pasaba nada y como lei que se podia poner solo proveedores....
  #4 (permalink)  
Antiguo 23/06/2009, 21:36
Avatar de javyjaja  
Fecha de Ingreso: diciembre-2008
Ubicación: cedral S.L.P.
Mensajes: 81
Antigüedad: 15 años, 4 meses
Puntos: 3
Respuesta: No coinciden los tipos :S

es base de datos acces o cual.
  #5 (permalink)  
Antiguo 23/06/2009, 21:42
 
Fecha de Ingreso: junio-2009
Mensajes: 11
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: No coinciden los tipos :S

es access la base
  #6 (permalink)  
Antiguo 23/06/2009, 21:43
Avatar de javyjaja  
Fecha de Ingreso: diciembre-2008
Ubicación: cedral S.L.P.
Mensajes: 81
Antigüedad: 15 años, 4 meses
Puntos: 3
Respuesta: No coinciden los tipos :S

Por que, puede ser el error por que tu base de datos debe deves de convertirlas en access 97,

otro error podria ser por que la ruta de la based e datos tiene espacios.
  #7 (permalink)  
Antiguo 23/06/2009, 21:53
 
Fecha de Ingreso: junio-2009
Mensajes: 11
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: No coinciden los tipos :S

ok, le saque el espacio de la direccion y nada... pero ahora la cosa es pasar la tabla a 97
  #8 (permalink)  
Antiguo 23/06/2009, 22:00
 
Fecha de Ingreso: junio-2009
Mensajes: 11
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: No coinciden los tipos :S

No tampoco la puse en 97 y nada
  #9 (permalink)  
Antiguo 24/06/2009, 04:25
 
Fecha de Ingreso: junio-2008
Ubicación: Punta Alta, Argentina
Mensajes: 82
Antigüedad: 15 años, 11 meses
Puntos: 0
Respuesta: No coinciden los tipos :S

Ese es todo el codigo para crear y abrir la conexion?
Usando ADO yo lo logro asi, con una base de datos en Access 2000

Set cnn = New ADODB.Connection
sFichero = App.Path & "\datos\tubase.mdb"
If cnn.State <> 1 Then
With cnn
.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source='" & sFichero & "';"
.Open
.CursorLocation = adUseClient
End With
End If



y a la hora de usar alguna tabla uso lo siguiente

Set rstMos = New ADODB.Recordset
sBus = "SELECT * FROM Estados ORDER BY anio DESC, mes_nro DESC "
Set rstMos = cnn.Execute(sBus)


Espero que sea de ayuda.
  #10 (permalink)  
Antiguo 24/06/2009, 09:53
 
Fecha de Ingreso: junio-2009
Mensajes: 11
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: No coinciden los tipos :S

Gracias!! ya puedo acceder a la tabla.. pero ahora me dice"Error 3251. El recordset actual no admite actualizaciones. Puede ser una limitacion del proveedor o del tipo de bloqueo seleccionado" y tengo este codigo

Dim sFichero As String
Dim rs As ADODB.recordset
Dim cnn As ADODB.connection


Private Sub connection()
Set cnn = New ADODB.connection
If cnn.State <> 1 Then
With cnn
.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source='" & "C:\Orden\Base de datos\Ordenes.mdb" & "';"
.Open
.CursorLocation = adUseClient
End With
End If


End Sub
Private Sub recordset()
Set rs = New ADODB.recordset
sBus = "SELECT * FROM proveedores"
Set rs = cnn.Execute(sBus)
End Sub


Private Sub CMDAg_Click()
With rs

.AddNew
.Fields("Nombre") = TXTnom.Text
.Update

End With
End Sub

Private Sub Form_Load()
connection
recordset
End Sub
  #11 (permalink)  
Antiguo 24/06/2009, 11:14
 
Fecha de Ingreso: junio-2009
Mensajes: 11
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: No coinciden los tipos :S

ya esta gracias lo que pasaba es que tenia que cambiar esta linea
Set rs = cnn.Execute(sBus)
por esta otra
rs.Open (sbus), cnn, adOpenDynamic, adLockOptimistic
  #12 (permalink)  
Antiguo 26/06/2009, 01:35
 
Fecha de Ingreso: junio-2009
Ubicación: Sevilla
Mensajes: 5
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: No coinciden los tipos :S

Para todos:

Teneis que comprobar el tipo de recordset que estais utilizando.

Si veis los distintos códigos, inicialmente se usaba un objeto Database de "DAO" y un recordset que no tenía especificado de donde procedía y, por tanto, dependía del orden de las referencias establecidas en el proyecto, de modo que podía ser un recorset "ADO" o "DAO" (incompatibles entre sí).

En el código que funciona se ha indicado explicacitamente qe son objetos "ADODB.*"

Saludos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:25.