SoloCodigo

Programación General => Visual Basic 6.0 e inferiores => Mensaje iniciado por: TasQuin en Domingo 26 de Diciembre de 2004, 11:21

Título: Problemas En Dao Con Like
Publicado por: TasQuin en Domingo 26 de Diciembre de 2004, 11:21
:hola:  la  verdad es que tengo un problema en esta consulta con dao:
  Dim Bus2 As String
  Dim Was, CLAVE As String

   Was = InputBox("Por Favor Teclee El Folio a Buscar", "BUSCAR FOLIO")
     If Was = "" Then
   Exit Sub
Else
   
Bus2 = "select * from TRABAJO where IDPRODUCCION = '" & Was & "' "
Set TablaEmpleados = BaseGlobal.OpenRecordset(Bus2, 2)
If (TablaEmpleados!IDEMPLEADO <> "") Then
    Text10 = TablaEmpleados!IDEMPLEADO
    CLAVE = "select * from EMPLEADOS where IDEMPLEADO = '" & Text10 & "' "
End If

 :whistling:  EL PROBLEMA ES QUE CUANDO EN ACCESS DECLARO EL CAMPO DE "IDPRODUCION:TEXTO" SI ME ENVIA EL RESULTADO, PERO COMO SE INTRODUCEN SOLO NUMEROS, TENGO QUE CAMBIARLA DE ESTA MANERA "IDPRODUCCION:NUMERO", ENTONCES ME MANDA EL ERROR <<-. ME DICE QUE LOS DATOS NO COINCIDEN-->> A QUE SE DEBE O CUAL ES MI ERROR EN LA CONSULTA, LO HE QUERIDO HACER CON Like, PERO NO ENTIIENDO LA CONSULTA DE ESTE MODO.
SI ME PUDIERAN AYUDAR, DE ANTEMANO MIL GRACIAS
Título: Re: Problemas En Dao Con Like
Publicado por: Sagutxo en Domingo 26 de Diciembre de 2004, 12:00
Salu2. Prueba a hacer conversiones con estas funciones.

Si quieres pasar numero a cadena:
ValStr=str(1234)

De cadena a numero:
ValInt= format(Valstr,Mascara);

doy por hecho que sabes que hay que sustituir la palabra máscara por una máscara válida

Espero haberte podido ayudar.
agur.
Título: Re: Problemas En Dao Con Like
Publicado por: cpmario en Lunes 27 de Diciembre de 2004, 05:10
Número o cadena de texto

Al hacer una consulta en SQL tienes que verificar si es texto o números lo que deseas.
Si el campo a buscar es texto "IDPRODUCION:TEXTO" la consulta debe escribirse entre comillas simples. Como lo tienes...  ='" & Was &  "'"

Pero si el campo es numérico "IDPRODUCCION:NUMERO" entonces debes introducir la consulta sin las comillas.
Dim lngWas as long
lngWas = InputBox("Por Favor Teclee El Folio a Buscar", "BUSCAR FOLIO")
If lngWas = 0 Then
   Exit Sub
Else
   Bus2 = "select * from TRABAJO where IDPRODUCCION = " & lngWas

Antes de construir una base de datos debes de definir si el campo que deseas es de texto o numérico. También toma en cuenta que en un campo de texto puedes guardar números como si fueran texto y si lo deseas puedes después convertirlos en números.
Siempre define que tipo de variable vas a usar ya que es más fácil que se presenten errores de tipo cuando no se definen, por ejemplo:
En lugar de:
Dim Was
Cuando es texto usa mejor:
Dim strWas as string
Cuando es número y no lleva decimales:
Dim lngWas as long

 :)
Título: Re: Problemas En Dao Con Like
Publicado por: Brroz en Lunes 27 de Diciembre de 2004, 18:15
Hola.

Aparte de consideraciones varias sobre tipos de datos, usa como carácter comodín para LIKE el carácter %.

Código: Text
  1.  
  2. Coincidencia del comienzo de valor del campo con 'MiValor':
  3. SELECT Campo FROM Tabla WHERE OtroCampoTexto LIKE('MiValor%')
  4.  
  5. Coincidencia del final de valor del campo con 'MiValor':
  6. SELECT Campo FROM Tabla WHERE OtroCampoTexto LIKE('%Valor')
  7.  
  8. El valor del campo que contenga 'MiValor':
  9. SELECT Campo FROM Tabla WHERE OtroCampoTexto LIKE('%Valor%')
  10.  
  11.  

Abur.
Título: Re: Problemas En Dao Con Like
Publicado por: cpmario en Lunes 27 de Diciembre de 2004, 20:13
Aclarando: Para usar Like en consultas de DAO se usa el asterisco * y para ADO se usa el signo de porciento %
 :)
Título: Re: Problemas En Dao Con Like
Publicado por: Brroz en Martes 28 de Diciembre de 2004, 09:13
Se non me trabuco... con ADO también funciona el '%', igual que con otras bases de datos SQL.

Abur.
Título: Re: Problemas En Dao Con Like
Publicado por: TasQuin en Martes 28 de Diciembre de 2004, 10:43
:D  gracias a todos a quellos que contestaron este mensaje y la verdad me fue de gran utilidad para el trabajo asic omo el de alimentar mi conocimiento  ¡¡¡GRACIA!!!  :comp: