(VBasi) Ayuda con el adodc + buscador

Publicado por andy123, Febrero 07, 2008, 10:21:59

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

andy123

Hola, les comento q estoy haciendo haber si alguno me puede llegar a asolucionar este problemas. Estoy haciendo un registro en acces de las mediciones q se realizan sobre unos impresos. Para ello el usuario de ingresar el documento, y luego el lote. Cada documento es unico e irrepetible y se guarda en forma de tabla en un access. Dentro de la tabla documento se colocan el lote y su medicion en la misma fila. Todo esto ya lo pude hacer. El tema es el buscador, aqui el usuario debe poner el documentro y luego en otro text el lote, pero amedida q va escribiendo el lote tiene q ir buscandolo en la tabla. para ello escribo algo asi:

Private Sub Text2_KeyPress(KeyAscii As Integer)
   
Dim longuitud2 As Integer
Dim palabra2 As String

palabra2 = Text2.Text
longuitud2 = Len(palabra2)
Text4.Text = longuitud2

If longuitud2 >= 3 Then
Adodc1.RecordSource = "Select * From" & "text1.text Order By Lote" & sOrden
Adodc1.Refresh
Buscar
   If KeyAscii = 13 Then

      If Text2.Text <> "" Then
        datos.Recordset.Filter = "Nombre LIKE '*" + Text2.Text + "*'"
      Else
       
        datos.Recordset.Filter = ""
        datos.Refresh
      End If
     
      KeyAscii = 0
   End If
End If

End Sub


el text2.text es donde se escribe el lote. EL problema conciso es:
Adodc1.RecordSource = "Select * From" & "text1.text Order By Lote" & sOrden
aqui nose como hacer para asignarle la tabla q se escriba en text1.text es un error de sintacsis.
Desde ya muchas gracias...

elrosti

No entendí un joraca lo que queres hacer, pero esto está mal:

Adodc1.RecordSource = "Select * From" & "text1.text Order By Lote" & sOrden

Como te daras cuenta, las comillas están mal puestas, lo correcto sería.

Adodc1.RecordSource = "Select * From" & text1.text " Order By Lote" & sOrden

Otra cosa que no entiendo es ¿ como es que tenes en text1 el nombre de la tabla ?, eso es un disparate, no puede ser que el usuario tenga que ingresar el nombre de una tabla, ademas si le decis "Order by Lote" es obvio que ya sabes que vas a ordenar por el atributo "Lote" que tiene que estar sí o si dentro de lo devuelto por tu sentencia SELECT.

Tambien supongo que en la variable sOrden tenes "Asc" o "Desc" sino tampoco tiene sentido esa variable alli.

Tampoco entiendo la necesidad de "a medida q va escribiendo el lote tiene q ir buscandolo en la tabla", no me parece ni eficiente ni necesario, con que la consulta se haga al terminar de escribir el lote me parece suficiente (pongamosle por ejemplo al precionar "Enter" o "Tab" o al perder el foco (evento lostfocus))

De todas maneras, es imposible ayudarte ya que no sabemos.

* La estructura de tu BD
* Que es lo que se ingresa en text1
* Cuales son los requerimientos.

Si das mas información quizas podamos ayudarte.

Saludos
Yo no lo quería creer..... pero ella me convenció.

andy123

     Gracias por contestar. Si al principio le puse el boton buscar como decis pero keria probar haber si me salia esto q decia.La verdad q es bastante dificil explicarlo pero voy a tratar de aclarar lo puntos q me marcaste.
      Con lo referente al programa el usuarioen el text1 ingresa el nombre del documento, luego con una rutina crea una nueva tabla para ese documento con el mismo nombre q se puso en el text1, si ya esta creada lo unico q hace es abrirla. Dentro de cada tabala esta el campo ID y el campo LOTE, lo q trataba de hacer aca
Adodc1.RecordSource = "Select * From" & "text1.text Order By Lote" & sOrden
era q lo ordenara por nombre de lote y luego con Buscar q me sañalara la fila. Sabia q estaba mal escrito y la pregunta era como debia hacerlo para escribirlo bien. Probe como me dijiste pero me tiro el error de "se espera fin del la instruccion" apenas termino de escribir text1.text.

te dejo dos screenshoot para ver si se aclara alguna duda
http://img219.imagevenue.com/aAfkjfp01fo1i-8025/loc448/99000_visual_123_448lo.jpg
http://img214.imagevenue.com/aAfkjfp01fo1i-1087/loc510/99001_access_123_510lo.jpg

Desde ya muchas gracias...

elrosti

bueh, primero que nada, las capturas no me funcan así que no tengo ni idea de que contenian.

Tenes razón en que la linea de codigo que te dije tenia un error, olvidé agregarle el & al final de text1.text, quedaría así.

Adodc1.RecordSource = "Select * From " & text1.text & " Order By Lote" & sOrden

Ahora lo que no entiendo es la necesidad de crear una tabla en tiempo de ejecución, me parece un disparate al menos que me des una razón valedera. ¿ aparte que es lo que habria en esa tabla y como la llenas con datos ? porque supongo que luego de crearla de alguna manera le cargas datos ¿ de donde salen esos datos ?

¿ porqúe mejor no decis especificamente que es lo que necesitas que haga el programa ?, así sería mas facil.

Y por favor, explicame que tablas usas y que atributos tienen cada tabla en lo posible con una descripción de los mismos.

Saludos.
Yo no lo quería creer..... pero ella me convenció.