Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 18 su 18
  1. #11
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    758
    Secondo me quella query dovrebbe sollevare un errore, a meno che da qualche parte non ci sia un On Error Resume Next.

    L'operatore LIKE, ripeto, ha senso solo per ricerche con chiave parziale.

    Essendo il campo Descrizione di tipo Text, la chiave di ricerca va racchiusa tra apici così:

    "SELECT * FROM Magazzino WHERE Descrizione = '" & TXT_Descrizione.Text & "'"

    ... più la clausola ORDER BY.

  2. #12
    Grumpy già lo fa, gli passo una funzione per gestire gli apici che, non ho riportate per non confondere le idee..

  3. #13
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da alessietta76
    per non confondere le idee..
    E così le hai confuse ...

    Fai una cosa ... riporta qui nel forum, esattamente, il risultato di

    ? sSQL

    che ottieni nella finestra immediata, così vediamo direttamente la query anche noi
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  4. #14
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    758
    Originariamente inviato da alessietta76
    gli passo una funzione per gestire gli apici che, non ho riportate per non confondere le idee..
    Alessietta, Alessietta...

    Fai come ti ha detto oregon.
    Non dare per scontato che ciò che accade in Access, che usa DAO, valga anche per una connessione ADO.

  5. #15
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244

    Re: Errori 3021

    Originariamente inviato da alessietta76
    Sono alle prese con un'errore che non ha modo di esistere. Mi spiego:
    Faccio una normale query di selezione per ricercarmi il record selezionato e, quando vado ad interrogare EOF mi da true. La cosa buffa è che se io copio ed incollo la query direttamente su access, va a buon fine e trova il record. Non capisco dov'è il problema...
    Ecco il codice:

    codice:
    Sub CaricaMagazzino()
    Set rsTabella = New ADODB.Recordset
    
    sSQL2 = ""
    AddSql sSQL2, "SELECT * FROM Magazzino WHERE Descrizione LIKE " & TXT_Descrizione
    AddSql sSQL2, "ORDER BY Descrizione"
    rsRicerca.Open sSQL2, ConnDB
              
    If rsRicerca.EOF = False Then
    
       LSB_Descrizione.Clear
       Do While rsRicerca.EOF = False
          LSB_Descrizione.AddItem rsRicerca!Descrizione
          LSB_Descrizione.ItemData(LSB_Descrizione.NewIndex) = rsRicerca!ID_Magazzino
          rsRicerca.MoveNext
       Loop
       LSB_Descrizione.ListIndex = -1
    End If
    
    rsRicerca.Close
    Set rsRicerca = Nothing
    
    End sub
    Premessa: gli errori, quando si verificano, hanno ragione di esistere.
    Su questo non ci piove.

    1)
    Spiegaci cosa c'entra
    Set rsTabella = New ADODB.Recordset
    che non viene usato?

    2)
    IMPORTANTE
    non si vedono le dichiarazioni della connessione ConnDB e del recordset rsRicerca .
    Mostraci come dichiari ed apri la ConnDB...

    3)
    Nel metodo Open del recordset si devono specificare tutti i parametri, invece tu scrivi solamente:
    rsRicerca.Open sSQL2, ConnDB

    Ad esempio, se stai solo scorrendo il recordset per leggere dati:
    rsRicerca.Open sSQL2, ConnDB, adOpenForwardOnly, adLockReadOnly, adCmdText

    Anche se adOpenForwardOnly e adLockReadOnly sono i valori predefiniti, è sempre raccomandato di usarli per la leggibilità.

    adCmdText (o l'opzione equivalente in base al tipo di Open che si esegue) è sempre da indicare, per migliorare l'apertura del recordset.

    4)
    Che tipo di campo è Descrizione?
    Se è un campo di tipo TESTO allora il valore da cercare TXT_Descrizione :
    a) deve essere racchiuso tra apici
    b) si devono raddoppiare gli apici, per evitare errori nel caso la Descrizione contenga un'apice.

    Morale della favola:
    Ti consiglio caldamente di usare un Command con Parametri!
    Vedi progetto di esempio per ADODB nella mia firma.


  6. #16
    Grazie a tutti per il vostro aiuto...

    Dopo svariate prove sono riuscita a risolvere il problema.
    Non gli piaceva l'asterisco come carattere jolly... l'ho sostituito con % ed ora funziona!!

    Vi ringrazio di cuore a tutti!!!

  7. #17
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    E' una questione nota ... Il carattere * è usato da DAO mentre il % da ADO ...

    Se, come ti avevo suggerito, ci avessi fatto vedere il reale contenuto della query, avresti risparmiato un po' di tempo ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  8. #18
    Oregon hai ragione, in effetti ho dovuto convertire la connessione DAO in ADO ed, il particolare del carattere jolly mi era sfuggito..
    E' sicuro che ora non me lo scordo!!!

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.