El Guru Programador
Usuario DESCONOCIDO | Registrate Gratis | Usuarios Registrados
Foro de Visual Basic/VB.NET
Foros del Guru > Visual Basic/VB.NET
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.
 
 

 

Contactos myStudio Network