SoloCodigo
Programación General => Visual Basic 6.0 e inferiores => Mensaje iniciado por: neorent en Jueves 15 de Diciembre de 2005, 19:42
-
hola a todos:
bueno tengo una base de datos access97 y una aplicacion la cual se conecta a esta lee, graba y todo eso, pero lo que necesito ahora es hacer que una busqueda pero es desordenada pero no se repiten los campos que busco pero quiero mas o menos que sea ordenado no se si me explico bueno les adjunto el codigo que tengo y ustedes me cuentan como lo puedo hacer o mejorar si es que se puede hacer algo :P gracias a todos.
Dim a As Database
Dim b As Recordset
Dim c As Recordset
Const mstrAppTitle = "Alpicacion"
Private Sub Command1_Click()
Unload Me
Form2.Show
End Sub
Private Sub Command2_Click()
Call folio
End Sub
Private Sub Command3_Click()
Frame1.Visible = False
Text1.SetFocus
End Sub
Private Sub Form_Load()
Set a = OpenDatabase("\\Obiwan\soporte\prueba\bd1.mdb")
Set b = a.OpenRecordset("maestro_atenciones")
Set c = a.OpenRecordset("equipamiento_atendido")
If b.RecordCount = 0 Then
MsgBox "No Existen Registros", vbInformation, "Por Favor Ingrese"
Else
b.MoveFirst
End If
If c.RecordCount = 0 Then
MsgBox "No Existen Registros", vbInformation, "Por Favor Ingrese"
Else
c.MoveFirst
End If
Frame1.Visible = False
End Sub
Sub folio()
b.MoveFirst
Do While b.EOF = False
If Text1.Text = b("folio_atencion") Or Text1.Text = b("fecha_llamado") Or Text1.Text = b("hora_llamado") & "" Or Text1.Text = b("usuario_atencion") & "" Or Text1.Text = b("direccion_depto") & "" Or Text1.Text = b("n_oficina") & "" Or Text1.Text = b("fono_anexo") & "" Or Text1.Text = b("problema_descrito") & "" Or Text1.Text = ("tipo_problema") & "" Or Text1.Text = b("tecnico_asignado") & "" Then
Frame1.Visible = True
Text2.Text = b("folio_atencion")
Text3.Text = b("fecha_llamado") & ""
Text4.Text = b("hora_llamado") & ""
Text5.Text = b("usuario_atencion") & ""
Text6.Text = b("direccion_depto") & ""
Text7.Text = b("n_oficina") & ""
Text8.Text = b("fono_anexo") & ""
Text9.Text = b("problema_descrito") & ""
Text10.Text = b("tipo_problema") & ""
Text11.Text = b("tecnico_asignado") & ""
Text12.Text = b("fecha_atencion") & ""
Text13.Text = b("hora_salida_atencion") & ""
Text14.Text = b("hora_inicio_atencion") & ""
Text15.Text = b("hora_termino_atencion") & ""
Text16.Text = b("hora_llegada_atencion") & ""
Text17.Text = b("problema_detectado") & ""
Text18.Text = b("solucion_atencion") & ""
Text19.Text = b("obs_atencion") & ""
Text20.Text = b("derivado") & ""
Text21.Text = b("mti") & ""
Text22.Text = b("fecha_cierre_atencion") & ""
Text23.Text = b("estado_atencion") & ""
b.MoveNext
If MsgBox("Desea Continuar", vbYesNo, mstrAppTitle) = vbNo Then
MsgBox "Esto le hara salir", vbInformation, "Continue"
Exit Do
End If
End If
If b.EOF = True Then
b.MoveFirst
End If
b.MoveNext
Loop
End Sub
bueno alguno de ustedes me puede ayudar se los agradesco que esten muy bien y muchas gracias adios
-
Hola
No soy una experta en el trema pero si trabajo con acces97 y visual
ahora tedigo que el codigo en apariencia esta bien
pregunto que es lo que quieres ordenar, por que campo de la base de datos
tu prersentas los datos todos a la vez o uno por uno
bueno en lo me suministres esos datos te ayudare un poco mas
saludos
-
no entiedo lo que quieres decir con ordenada, pero yo utilizo
rs.findfirst("Nombredelcampo=" & variable) 'esto si es un numero
rs.findfirst("ombredelcampo=' & variable & "'") ' esto para una cadena
para utilizar findfirs debes tener el recordset en modo dynaset de lo contrario debes utilizar Seek
rs.index = "nombre del indice" 'en access las llaves principales se llaman primarykey
rs.Seek "=",variable
en ambos casos utilizas rs.nomatch por si no encuentra un registro que coincida con las condiciones de busqueda
-
aver como mostraba el codigo a continuacion esta bien pero saben lo que yo quiero es que por ejemplo yo hago una busqueda por cualquier campo pero que siempre se ordene por folio_atencion que es la llave primaria no se sime entienden que si yo busco un dato lo muestre pero que sea acorde al folio de atencion osea si yo tengo el los folios 10,50,80,90 que los muestre en ese orden y no como me lo muestra que es asi 10,90,50,80 no se, si se puede y si me puden ayudar se los agradesco ok adios
-
cuando abras el recordset lo tienes que hacer con una sentencia SQL
set rs = db.openrecordset("SELECT * FROM folio ORDER BY campo")
-
cuando abras el recordset lo tienes que hacer con una sentencia SQL
set rs = db.openrecordset("SELECT * FROM folio ORDER BY campo")
HOLA MIRA DESEO QUE VEAS ESTE CODIGO Y ME DIGAS PK ME ARROJA UN ERROR QUE NO ENTIENDO PK SUCEDE SI ESTOY HACIENDO TODO BIEN Y QUIZAS ALGUNA PARTE DEL CODIGO ESTA MAL ME PUEDES INDICAR CUAL PUEDE SER?
TE LO AGRADESCO ADIOS
Option Explicit
Private db As Database
Private rs As Recordset
Private Sub Command7_Click()
End
End Sub
Private Sub Form_Load()
Const sPathBase As String = "\\obiwan\soporte\prueba\bd1.MDB"
Set db = OpenDatabase(sPathBase)
Set rs = db.OpenRecordset("SELECT * FROM maestro_atenciones", dbOpenDynaset)
With ListView1
.View = lvwReport
.GridLines = True
.LabelEdit = lvwManual
.ColumnHeaders.Add , , "Folio atencion", 800
.ColumnHeaders.Add , , "Nombre Usuario", 2500
.ColumnHeaders.Add , , "Tecnico Asignado", 1500, lvwColumnRight
End With
End Sub
Private Sub cmdBuscar_Click()
Dim sBuscar As String
Dim tRs As Recordset
Dim tLi As ListItem
sBuscar = "SELECT * FROM maestro_atenciones WHERE Author LIKE '" & Text2 & "' ORDER BY usuario_atencion"
Set tRs = db.OpenRecordset(sBuscar, dbOpenSnapshot)
With tRs
If (.BOF And .EOF) Then
MsgBox "No se han encontrado los datos buscados"
Else
ListView1.ListItems.Clear
.MoveFirst
Do While Not .EOF
Set tLi = ListView1.ListItems.Add(, , .Fields("folio_atencion") & "")
tLi.SubItems(1) = .Fields("usuario_atencion") & ""
tLi.SubItems(2) = .Fields("tecnico_asignado") & ""
.MoveNext
Loop
End If
End With
End Sub
IGUAL TE ADJUNTO el formulario por si acaso pero la base no puedo pk resulta que pesa mas de 2 mb y el foro no lo soporta creo? bueno gracias y que estes bien adios
-
Hola
eso es mas fácil de lo que pensamos en Access si folio es la clave principal o independientemente, seleccionas la columna y le dices ordenar en el icono AZ o ZA según el orden que quieras y ya en ese orden que tenga en al base de datos te aparecerá en el formulario de búsquedas
Prueba eso a ver que tal te va
Saludos
-
Hola
eso es mas fácil de lo que pensamos en Access si folio es la clave principal o independientemente, seleccionas la columna y le dices ordenar en el icono AZ o ZA según el orden que quieras y ya en ese orden que tenga en al base de datos te aparecerá en el formulario de búsquedas
Prueba eso a ver que tal te va
Saludos
hola si se puede hacer eso pero resulta que folio es autonumerico y no se como quedara si lo ordeno asi????????
-
Hola
eso es mas fácil de lo que pensamos en Access si folio es la clave principal o independientemente, seleccionas la columna y le dices ordenar en el icono AZ o ZA según el orden que quieras y ya en ese orden que tenga en al base de datos te aparecerá en el formulario de búsquedas
Prueba eso a ver que tal te va
Saludos
Lol La mejor respuesta que ley xD