Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18
  1. #1

    Errori 3021

    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

  2. #2
    non conosco in che modo il db in questione tratti gli spazi, ma se sei certa che il record ci sia prova a trimmare sia il campo di confronto del DB sia il valore di riferimento inserito.

    io la sett. scorsa ci son diventato scemo perchè l'ide non mi visualizzava un blank... ho risolto con due semplici trim.

  3. #3
    FengHuang ho provato a fare il trim sulla stringa ma... nulla. Proprio non capisco.. La stessa identica query copiata ed incollata su Access funziona e mi restituisce dei risultati!! Funzionava anche quando facevo la connessione con DAO.. ora che ho convertito tutto in ADO, questa query è l'unica a non funzionare!! Sono disperata!!!

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320

    Moderazione

    Stiamo parlando di VBA, che ha un forum dedicato... Visual Basic e .NET Framework.
    Il linguaggio non è stato specificato nel titolo, come richiesto espressamente dal Regolamento interno.
    Manca anche l'uso dei tag CODE per il codice.

    Sposto e correggo il tutto.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  5. #5
    Scusa LeleFT, è la prima volta che scrivo in questo Forum.

    Il linguaggio di programmazione è VB6 con connessione a db Access.

    Grazie

  6. #6
    allora non so che dirti il VB non lo uso da secoli

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    758
    La query che proponi non può essere copia-incollata pari pari su Access in quanto qui fsi uso del contenuto di una casella di testo e, inoltre, è costruita per il tramite di una funzione AddSql che non mostri e che quindi non si sa che cosa fa. Supponiamo comunque che svolga il banale ruolo di concatenare delle stringhe, inserendo uno spazio tra l'una e l'altra.

    La query comunque non estrae nessun record perché l'operatore LIKE, che serve per fare un confronto parziale, ha senso solo se usato insieme ai caratteri jolly. Inoltre, trattandosi di confronti fra stringhe, il termine di confronto, comprensivo del carattere jolly, deve essere racchiuso tra apici.

  8. #8
    La query che proponi non può essere copia-incollata pari pari su Access in quanto qui fsi uso del contenuto di una casella di testo e, inoltre, è costruita per il tramite di una funzione AddSql che non mostri e che quindi non si sa che cosa fa. Supponiamo comunque che svolga il banale ruolo di concatenare delle stringhe, inserendo uno spazio tra l'una e l'altra.

    La query comunque non estrae nessun record perché l'operatore LIKE, che serve per fare un confronto parziale, ha senso solo se usato insieme ai caratteri jolly. Inoltre, trattandosi di confronti fra stringhe, il termine di confronto, comprensivo del carattere jolly, deve essere racchiuso tra apici.


    Grumpy addsql, concatena la stringa sql... Per copiarmi la query che ho scritto faccio così: su vb6 in modalità debug, quando arriva al punto di eseguire la query, apro la "finestra immediata" e mi faccio visualizzare il risultato di sSQL (?=sSQL); in questo modo ottengo la stringa esatta della query che sta per eseguire. La incollo su access e funziona, tira fuori i record mentre, su vb6 eof è subito true.
    Al di la di tutto, la tabella è piena e qualunque dato gli passo restituisce sempre un record perchè, il record che cerca, lo prende dalla stessa tabella.
    Non riesco a capire perchè in vb6 mi dice che è vuota... dove sbaglio?

  9. #9
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    758
    Ma tu devi cercare un record con la descrizione completamente uguale o solo parzialmente ? E il campo Descrizione sulla tabella di che tipo è?

  10. #10
    Grumpy io cerco un campo con la descrizione completamente uguale ed il campo della tabella è un semplice campo testo. Ho provato a sostituire il LIKE con = ma non cambia.. eof è sempre a true... sta diventando un vero incubo...
    Hai qualche suggerimento?

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.