+ Rispondi al messaggio
Visualizzazione dei risultati da 1 a 9 su 9

Ricerca in più campi dello stesso record

  1. #1
    Cis
    Cis non è in linea Scribacchino
    Volevo sottoporre agli amici del forum questo nuovo problema riguardo un progetto che stò realizzando.
    In effetti ho inserito un Frame in un form, in questo Frame1 ho inserito tre campi collegati ad un file .mdb, il quarto campo contiene una data collegata sempre ad un file .mdb, in questomodo ho creato un archivio appuntamenti dove per quella data sono inseriti dei nomi a loro volta(i nomi ) inseriti nei tre campi testo.
    I campi inseriti nel file .mdb sono chiamati Ora830,Ora900,Ora930) in modo che ogni mezz'ora viene inserito un nome.
    Potrebbe capitare che lo stesso nome sia inserito sia alle Ora830 o Ora930.
    Ho utilizzato il codice che vi riporto per fare in modo che ci sia una ricerca che riguardi diversi campi , dello stesso file .mdb contemporaneamente però senza successo, nel senso che non mi dà errore però non mi dà nemmeno un risultato della ricerca.

    Dim Ricerca
    
    if Ricerca = "Ora830 = '" & Text830.text & " ' or Ora900 = '" & Text900.text  & "' or 930 = '" & Text930.text  & "'" then
    
    
    Data1.Recordset.FindFirst Ricerca
    
     elseif Data1.Recordset.NoMatch Then
    
    MsgBox ("Nome  non esistente nell'archivio")
    
    End If
    
    Io in effetti con questo codice volevo fare in modo da effettuare una ricerca nel file .mdb in modo che una volta trovato quel nome evidenziare il nome trovato , però se esistono altri rercord con lo stesso nome inserito sempre relativamente ai tre campi indicati prima, scorrere i vari record con un pulsante .


    Spero di essere stato chiaro nell'esporre il problema.


    Grazie anticipatamente delle vostre risposte.


    Ciao CIS.

  2. #2
    Cis
    Cis non è in linea Scribacchino
    Ho provato pure in questo modo ma senza risultato:

    Dim Ricerca
        Segnaposto = Data1.Recordset.Bookmark
    Ricerca = InputBox("Scrivi Il Nome da cercare")
       If Ricerca = "" Then Exit Sub
    CriterioRicerca = "Ora830 = '" & Text830.text & " ' or Ora900 = '" & Text900.text  & "' or 930 = '" & Text930.text  & "'" 
    
       Data1.Recordset.FindFirst CriterioRicerca
    
      if Data1.Recordset.NoMatch Then
    
    MsgBox ("Nome  non esistente nell'archivio")
    
    End If
    
    Volevo chiedervi ancora una volta se esiste un sistema per fare una ricerca sui tre campi contemporaneamente e che possa interessare i diversi record esistenti nel file .mdb
    Ho pensato anche ad una ListBox che racchiuda i record una volta effettuata la ricerca ma non sò come procedere.

    Grazie Ciao;

  3. #3
    L'avatar di gibra
    gibra non è in linea Very Important Person
    Mi pare vi sia un errore nella tua stringa di ricerca:

    or 930
    
    forse dovrebbe essere

     or Ora930
    
    HTH
    ℹ️ Leggi di più su gibra ...

  4. #4
    Cis
    Cis non è in linea Scribacchino
    Ciao GIBRA grazie dell'indicazione che mi hai dato , ho fatto la correzione che tù dicevi e che andava fatta , ma comunque quando faccio la ricerca non mi evidenzia nessun risultato, nè di nome non trovato nè di errore, come se trovasse il nome però non me lo evidenzia.
    Potrebbe essere perchè i campi testo sono inseriti in un frame1(Visibile)?
    In più come potrei fare in modo che la ricerca sia fatta solo digitando la prima lettera del cognome e quindi darmi tutti i cognomi inseriti e che iniziano con la lettera che digito?

    Ciao e Grazie, sperando che si possa risolvere

  5. #5
    L'avatar di gibra
    gibra non è in linea Very Important Person
    Mi sembra che stai facendo un po' di confusione...

    Se cerchi un nome:
    Ricerca = InputBox("Scrivi Il Nome da cercare")
    
    mi spieghi perchè poi nella stringa di ricerca indichi le 3 textbox che non c'entrano nulla?
    CriterioRicerca = "Ora830 = '" & Text830.text & " ' or Ora900 = '" & Text900.text  & "' or 930 = '" & Text930.text  & "'"
    
    In effetti la valore Ricerca a cosa ti è servito, se poi non lo utilizzi?

    la ricerca andrebbe fatta
    CriterioRicerca = "Ora830 = '" & Ricerca & "' or Ora900 = '" & Ricerca & "' or Ora930 = '" & Ricerca & "'"
    

    Per eseguire la ricerca indicando uno o più caratteri devi utilizzare l'operatore LIKE ed i caratteri jolly (in DAO sono * e ?)

    Data1.Recordset.FindFirst "Cognome LIKE 'C*'"
    
    Sulla guida trovi tutti i dettagli, basta che digiti LIKE sulla finestra del codice o nella finestra Immediate, lo selezioni e premi F1

    HTH
    ℹ️ Leggi di più su gibra ...

  6. #6
    Cis
    Cis non è in linea Scribacchino
    Gibra, in effetti ho fatto un pò di confusione, ho corretto come tu dicevi e mi esegue la ricerca, però mi trova solo un record dove è inserito quel nome ma non tutti i record dove è presente quel nome.
    Io in effetti avrei la necessita di fare una ricerca che interessi tutti record dove è inserito quel nome relativamente sempre a quei tre Campi(Ore830,Ore900,Ore930).
    In pù scusa la mia ignoranza ma volevo chiederti delucidazioni riguardo la funzione LIKE, in effetti quel cognome che tu hai riportato nel codice sarebbe il campo dove fare la ricerca, e se è cosi visto che io effettuo la ricerca per tutti e tre i campi deo inserire tutti i campi(Ore830,Ore900,Ore930).


    Grazie della tua disponibilità.


    Ciao CIS

  7. #7
    L'avatar di gibra
    gibra non è in linea Very Important Person
    perchè la FindFirst trova e mostra solo il 1º record che soddisfa la ricerca, per continuare la ricerca devi usare il metodo FindNext.

    Però ora mi fermo qua, non avertene a male, ma a te occorre studiare almeno le basi. Le tue problematiche non si risolvono sui forum (ti ci vorrebbe una vita!) ma è meglio studiarsi la guida ma soprattutto un buon libro.

    Tra l'altro stai utilizzando DAO che è una tecnologia a dir poco obsoleta, di cui onestamente ricordo poco o nulla, quindi ti consiglierei caldamente di lasciar perdere DAO ed iniziare a studiare direttamente ADO. Non ha senso mettersi a studiare qualcosa di già vecchio e sorpassato.
    A meno che tu non voglia fare l'antiquario
    ℹ️ Leggi di più su gibra ...

  8. #8
    Cis
    Cis non è in linea Scribacchino
    Gibra innanzitutto grazie dei suggerimenti, però volevo solo precisare che certe funzioni anche se leggi diversi libri si possono individuare e studiare, però nel metterle in pratica molto spesso diventa una impresa per quelli come me che non sono "del mestiere", quindi non è mancanza di volontà da parte mia, anzi molto spesso nella risoluzione di un probòema senza aiuto è motivo di soddisfazione, ma in alcuni casi è proprio necessario l'aiuto di persone esperte(fortunatamente esiste questo forum).

    Grazie ancora CIS

  9. #9
    L'avatar di gibra
    gibra non è in linea Very Important Person
    Quello che dici è vero, ecco perchè esistono i Forum .

    Ammetterai però che questa frase, presa dalla guida:

    Metodi FindFirst, FindLast, FindNext, FindPrevious

    Individuano il primo, l'ultimo, il successivo o il precedente record in un oggetto Recordset di tipo dynaset o di tipo snapshot che soddisfa i criteri specificati e lo rendono il record corrente. Solo per le aree di lavoro di Microsoft Jet.


    è molto comprensibile.

    HTH
    ℹ️ Leggi di più su gibra ...

+ Rispondi al messaggio

Potrebbero interessarti anche ...

  1. Risposte: 7
    Ultimo Post: 06-11-2015, 09:40
  2. Risposte: 5
    Ultimo Post: 27-05-2013, 13:45
  3. Somma di 2 o + campi dello stesso record
    Da SNEIK75 nel forum Microsoft Access
    Risposte: 8
    Ultimo Post: 16-10-2012, 13:11
  4. ricerca stesso valore su piu campi
    Da NINO1963 nel forum Microsoft Access
    Risposte: 2
    Ultimo Post: 24-04-2011, 12:05
  5. Risposte: 7
    Ultimo Post: 22-03-2010, 19:22