| Usuario |
¿Qué está mal? |
Miriam
14 Mensaje(s)
|
| Enviado - 22/8/2004 |
| |
El problema que tengo es que me dice siempre que hay CERO registros. Si el select lo hago sin el where si que funciona. Pero debe ser problema de definir x como string, ya que no entiendo porque no saca registros.
El campo Apellido.text está en un formulario que se relaciona con BBDD1. Y lo que quiero es que busque a ver si encuentra alguno en BBDD2. Pero saca 0 registros cuando debería sacar 1.
dim dbsBase2 as DataBase
dim x as string
x = Apellido.Text
Set dbsBase2 = CurrentDb()
With dbsBase2
Set rstTotal2 = .OpenRecordset("SELECT COUNT(Apellido) FROM BBDD2 WHERE Apellido='x'")
Debug.Print rstTotal2(0)
rstTotal2.Close
End With
¡¡Ayuda por favor!! |
| |
|
nostromo
389 Mensaje(s)
|
| Enviado - 23/8/2004 |
| |
Hola;
Miriam, falta la dirección o el path de la segunda base de datos.
además no cierras la consulta y la base de datos.
Falta definir el Recordset, el cual muestra el dato que buscas.
Proyecto \ Referencias \ Microsoft DAO 3.51 Object Library
Option Explicit
Dim db As Database
Dim rs As Recordset
Dim a As String
Dim x As String
a = "c:\dd\base\" & txtBaseDatos & ".mdb"
'en txtBaseDatos.Text = BBDD1 o BBDD2
x = Apellido.Text
Set db = OpenDatabase(a)
Set rs = db.OpenRecordset ("SELECT COUNT(Apellido) FROM BBDD2 WHERE Apellido='x'")
Debug.Print rs(0)
rs.Close
db.Close |
| |
|
Miriam
14 Mensaje(s)
|
| Enviado - 23/8/2004 |
| |
Si, perdona. Lo tengo definido el RercodSet. Se me habia olvidado postearlo en el mensaje.
En cuanto a la tabla BBDD2, está en la misma *.mdb que la tabla BBDD1. ¿Es necesario volver a abrir la *.mdb?.
Salu2 y gracias. |
| |
|
Miriam
14 Mensaje(s)
|
| Enviado - 23/8/2004 |
| |
He probado lo que decías. Me sigue saliendo 0.
:-) |
| |
|
Miriam
14 Mensaje(s)
|
| Enviado - 23/8/2004 |
| |
SI lo hago como yo decía al principio sin la cláusula WHERE, el SELECT encuentra 2 elementos, puesto que tengo metidos dos registros. En cambio si lo hago con el WHERE, igualándolo al txtApellido.text, no encuentra nada. El problema está en que no entra nada dentro de la variable "x" si lo defino como STRING... y si entra, no funciona.
Tanto si lo hago a tu manera como a la mia. |
| |
|
nostromo
389 Mensaje(s)
|
| Enviado - 23/8/2004 |
| |
Hola;
Miriam
Nunca te va a salir ahora miro con atención y no me di cuenta, el Count, es para ver el total de registros de una tabla.
Una forma es llenar el grid y sacar el número de filas. En el listbox, la cantidad de elementos, etc.
Si realizas otro tipo de consulta de tipo enlistar te resulta con el where.
Nos vemos.
P.D.: También me encontre con el mismo problema, vaya la memoria la mía. Es la edad. |
| |
|
nostromo
389 Mensaje(s)
|
| Enviado - 23/8/2004 |
| |
Hola Miriam;
Otra cosa, siempre debes abrir la base de datos, ya que despues de cada consulta la cierras y no queda disponible, SIEMPRE DEBES CERRARLA Y DESPUES ABRIRLA o de lo contrario la base se corrompe.
La regla de oro:
rs.Close 'Cerrar el Recordset
db.Close 'Cerrar la base de datos
Nos vemos. |
| |
|
Miriam
14 Mensaje(s)
|
| Enviado - 23/8/2004 |
| |
Si si... también lo tengo puesto... vaya tela!. Es que era tan obvio que no lo he puesto.
En cualquier caso, sigo con el mismo problema.
Salu2 |
| |
|
nostromo
389 Mensaje(s)
|
| Enviado - 23/8/2004 |
| |
Hola;
Miriam, debes hacer el Count sin las clausulas, ni where ni nada.
x = txtNombreTabla.Text
rs = db.OpenRecordset ("Select Count(IDCliente) From x")
lblCuenta.Caption = rs.Fields(0) & " datos"
Miriam fiajte en la declaración del recordset
"rs.Fields(0)"
Avisa si tienes MSN para chatear.
Nos vemos. |
| |
|