Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    42

    [VB6] ricerca in un database

    Ciao a tutti!
    Sono alle prime armi con il VB e x imparare sto provando con una semplice ricerca iu un database access.
    Fino ad ora riesco a ricercare sono in un campo in questo modo:

    Private Sub Command1_Click()

    Dim Nome2 As String
    Nome2 = InputBox$("nuova ricerca:", "Ricerca")
    If Nome2 <> "" Then

    Data1.Recordset.Index = "Nome"
    Data1.Recordset.Seek "=", nome2
    If Data1.Recordset.NoMatch Then
    Data1.Recordset.MoveFirst
    Data1.Refresh

    MsgBox "Nessun risultato.", vbInformation, Me.Caption
    End If
    End If
    End Sub
    potete farmi qualche esempio per aumentare i campi di ricerca ( es nome, cognome, città ecc)
    e come posso utilizzare checkbox?
    Grazie a tutti ciao

    ps. ho cercato nel forum ma nn ho trovato esempi simili..

  2. #2
    Utente di HTML.it L'avatar di Veronica80
    Registrato dal
    May 2006
    Messaggi
    2,117
    Non è meglio se crei un recordset con una SELECT? :master:

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    42
    ehm... si ma nn so bene come si fa....
    posso chiederti gentilmente di farmi un esempio?

  4. #4
    Utente di HTML.it L'avatar di Veronica80
    Registrato dal
    May 2006
    Messaggi
    2,117
    dipende da come ti connetti al db. Io di solito usito connessioni ADO

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    42
    si infatti stavo cercando proprio quello ora su gg
    è un po' come l'asp
    credo che questo sia un esempio di connessione...
    Sub LoadList()


    Dim miodb As Database
    Dim Tabella As Recordset

    Set db = opendatabase("miodb.MDB")
    Set Tabella = db.openrecordset("MIA", dbOpenTable)

    Tabella.Index = "INDICE DI RICERCA"
    Tabella.Seek "=", Text1.Text
    If Tabella.NoMatch Then
    MsgBox "NON TOVATO"
    Else
    MsgBox "TROVATO: " & Tabella("CAMPO CITTA")
    End If
    End Sub
    ok ci sto capendo qualcosa di piu' ... ma nell'esempio mi da errore mi dice "errore di compilazione: tipo definito dall'utente non definito" :master:
    nn so come risolverlo...

  6. #6
    Utente di HTML.it L'avatar di Veronica80
    Registrato dal
    May 2006
    Messaggi
    2,117
    Forse devi inserire il riferimento Activex Data Object 2.x

    Io cmq di solito faccio metto un modulo dove inserisco:

    codice:
    Public connConnection As New ADODB.Connection
    Public rsRecordset As New ADODB.Recordset
    Public Sub Connessione()
    connConnection.CursorLocation = adUseClient
    connConnection.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\tuoDatabase.mdb"
    rsRecordset.CursorType = adOpenStatic
    rsRecordset.CursorLocation = adUseClient
    rsRecordset.LockType = adLockPessimistic
    End Sub
    Poi per aprire il recordset fai:
    codice:
    'qui controlli che non sia già aperto
    if rsRecordset.state=1 then
        rsrecordset.close
    endif
    'Qui gli associ la select come sorgente dati
    rsRecordset.Source="SELECT * FROM tuaTabella WHERE tuoCampo='" & tuaVariabile & "'"
    'qui apri il record
    If rsRecordset.State = 0 Then
        rsRecordset.ActiveConnection = connConnection
        rsRecordset.Open
    End If
    Ecco fatto ti sei creato un recordset dove ci son solo i record che hanno come "tuoCampo" la "tuaVariabile"!

    Ho evidenziato in rosso i campi che devi personalizzare tu!

    ps: Anche qui devi inserire il famoso riferimento se no non ti riconosce il tipo di variabile (Connessione e Record).

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    42
    bene ... in parte sto capendo meglio l'uso del SELECT
    :master: ora xò non ho capito una cosa...
    come posso visualizzare i risultati in un campo ListBox?

    facciamo finta che voglio estrarre da un db tutti i record della provincia di bologna
    inserisco un TextBox dove si può indicare la variabile e poi cerco nella tabella in questo modo:
    Private Sub Command1_Click()
    If rsRecordset.State = 1 Then
    rsRecordset.Close
    End If
    'Qui gli associ la select come sorgente dati
    rsRecordset.Source = "SELECT * FROM Tabella WHERE provincia='" & Text1 & "'"
    'qui apri il record
    If rsRecordset.State = 0 Then

    End If

    End Sub
    (non so se questa parte di codice scritta così sia corretta)

  8. #8
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    42
    dimenticavo... x stampare i dati in una listbox ho provato così:
    If rsRecordset.State > 0 Then
    rsRecordset.MoveFirst
    While Not rsRecordset.EOF()
    List1.AddItem rsRecordset(1)
    rsRecordset.MoveNext
    Wend
    End If
    ma nn viene visualizzato nulla

  9. #9
    Utente di HTML.it L'avatar di Veronica80
    Registrato dal
    May 2006
    Messaggi
    2,117
    allora...dopo che apri il record col codice che ti ho scritto usi questo:
    codice:
    list1.clear
    do until rsrecordset.eof
           list1.additem rsrecordset("tuoCampo")
           rsrecordset.MoveNext
    loop

    AH! Nella select che hai scritto devi mettere Text1.text non text1 e basta

  10. #10
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    42
    Veronica ti ringrazio per tutto l’aiuto che mi stai dando

    Ora sto combattendo contro un errore cioè alla riga “Do Until rsRecordset.EOF” mi dice che l’oggetto è chiuso… presumo sia rsRecordset.Close a chiudere rsRecordset ma anche se elimino questa stringa mi da sempre l’errore…
    Posto il codice magari qualcuno puo’ spiegarmi dove sbaglio…
    Public connConnection As New ADODB.Connection
    Public rsRecordset As New ADODB.Recordset
    Public Sub Connessione()
    connConnection.CursorLocation = adUseClient
    connConnection.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\dbTest.mdb"
    rsRecordset.CursorType = adOpenStatic
    rsRecordset.CursorLocation = adUseClient
    rsRecordset.LockType = adLockPessimistic
    End Sub
    If rsRecordset.State = 1 Then
    rsRecordset.Close
    End If

    'Qui gli associ la select come sorgente dati
    rsRecordset.Source = "SELECT * FROM Tabella WHERE PROVINCIA='" & Text1.Text & "'"

    'qui apri il record
    If rsRecordset.State = 0 Then
    rsRecordset.ActiveConnection = connConnection
    rsRecordset.Open
    End If

    Private Sub Command1_Click()
    List1.Clear
    Do Until rsRecordset.EOF
    List1.AddItem rsRecordset("provincia")
    rsRecordset.MoveNext
    Loop



    End Sub

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.