Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18
  1. #1
    Utente di HTML.it L'avatar di Rickycast
    Registrato dal
    Apr 2007
    residenza
    CHIERI (TO)
    Messaggi
    263

    [VB.NET] Query che genera errore solo con una specifica data

    Da un Progetto VB .net devo eseguire una Query di "CreazioneTabella" imponendo un Criterio al Campo "Data". Tutto fila liscio fino a quando la Data Criterio è il 13/11/2017: la Query genera solo una riga vuota di tabella.
    È incredibile che qualsiasi altra data invece restituisca la serie di valori che mi aspetto, ma il 13/11/2017 no.
    Il Codice è piuttosto lungo, per cui provo a presentare solo un estratto; se poi serve aggiungerò:

    codice:
    Dim DSL As Date
    
            DSL = DSL.AddDays(-1)
            DSL = Format(DSL, "dd MM yyyy")
    
            sSQL = "SELECT DISTINCTROW Vendite.Categ, Colore.OrdCOL, Vendite.Corrisp, Giacenza.Giacenza AS Giac, Vendite.QMov AS Quant, Vendite.Data, Vendite.NBolla, ControlloDiMagazzino.DataUltimoControllo, VerifQuot_2.MaxDiData, ControlloDiMagazzino.UltimaBollaControllata, VerifQuot_2.MaxDiNBolla INTO VerifQuot_3 FROM ControlloDiMagazzino, VerifQuot_2, ((Vendite INNER JOIN Giacenza ON Vendite.Corrisp = Giacenza.Corrisp) INNER JOIN Prodotti ON Giacenza.Corrisp = Prodotti.Corrisp) INNER JOIN Colore ON Prodotti.Colore = Colore.Colore WHERE (((Vendite.Data)>#" & DSL & "#)) ORDER BY Colore.OrdCOL, Vendite.Corrisp"
            rcrdst.Open(sSQL, CnDBLocale, ADODB.CursorTypeEnum.adOpenStatic, ADODB.LockTypeEnum.adLockOptimistic)
    Il DB è Access 2007. Non so se è necessario, ma ho anche impostato il Formato della data dopo aver verificato che, scrivendola manualmente e non come parametro, la Query desse un risultato logico.
    Se scrivo la Queri impostando il criterio esplicitamente, viene regolarmente eseguita:

    codice:
            sSQL = "SELECT DISTINCTROW Vendite.Categ, Colore.OrdCOL, Vendite.Corrisp, Giacenza.Giacenza AS Giac, Vendite.QMov AS Quant, Vendite.Data, Vendite.NBolla, ControlloDiMagazzino.DataUltimoControllo, VerifQuot_2.MaxDiData, ControlloDiMagazzino.UltimaBollaControllata, VerifQuot_2.MaxDiNBolla INTO VerifQuot_3 FROM ControlloDiMagazzino, VerifQuot_2, ((Vendite INNER JOIN Giacenza ON Vendite.Corrisp = Giacenza.Corrisp) INNER JOIN Prodotti ON Giacenza.Corrisp = Prodotti.Corrisp) INNER JOIN Colore ON Prodotti.Colore = Colore.Colore WHERE (((Vendite.Data)>#13/11/2017#)) ORDER BY Colore.OrdCOL, Vendite.Corrisp"
            rcrdst.Open(sSQL, CnDBLocale, ADODB.CursorTypeEnum.adOpenStatic, ADODB.LockTypeEnum.adLockOptimistic)
    Sicuramente sto sbagliando. ma dove?

    Grazie per l'aiuto

  2. #2

  3. #3
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,463
    In effetti il mese 13 non esiste ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  4. #4
    Utente di HTML.it L'avatar di Rickycast
    Registrato dal
    Apr 2007
    residenza
    CHIERI (TO)
    Messaggi
    263
    Resta comunque una domanda: perché con tutte le altre date il problema non si pone?
    Anche il mese 14 (14/11/2017) o il 15 (15/11/2017) non esistono secondo questa interpretazione, eppure con le impostazioni attuali il sistema non mi da lo stesso errore che ricevo con la data (13/11/2017).
    Comunque, appena possibile correggerò l'impostazione e poi vi riferisco. Fra l'altro, credo di avere visto sull'help di Microsoft, che l'impostazione corretta non prevede le barre e che il mese sia identificato dalla lettera maiuscola:

    codice:
    DSL = Format(DSL, "MM dd yyyy")

    Quale impostazione devo utilizzare?

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,463
    Per evitare tutti questi problemi si usano i Parametri nella query
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  6. #6
    Utente di HTML.it L'avatar di Rickycast
    Registrato dal
    Apr 2007
    residenza
    CHIERI (TO)
    Messaggi
    263
    Scusami, puoi farmi un semplice esmpio di Parametro, che in questo momento mi sfugge? (sai, l'età, ...)

  7. #7
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Vi sono centinaia (forse anche migliaia) di esempi sui Parametri nel web, oltre alla guida MS.

  8. #8
    Utente di HTML.it L'avatar di Rickycast
    Registrato dal
    Apr 2007
    residenza
    CHIERI (TO)
    Messaggi
    263
    OK! cercherò sul Web.
    Sarei però proprio curioso di sapere perché, secondo voi, l'anomalia che ho descritto si verifica solo con la data 13/11/2017.
    Ci sarà pure una ragione.
    Non è assolutamente normale che solo per quella data venga restituito un errore.
    Crerdo che anche a voi verrebbe la curiosità di sapere perché; a me è venuta ma siccome la mia esperienza è limitata non so dove trovare la risposta.
    Dopo aver cercato sul Web le informazioni sui Parametri, proverò comunque altre strade per vedere se trovo una soluzione. Se avrò risposte positive le posterò.

  9. #9
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,463
    Direi che non dovresti perdere tempo né cercare "altre strade". Semplicemente usa i Parametri e risolvi per sempre (e anche per altri problemi).

    Magari se trovi il problema, continui su questa strada, che è SBAGLIATA
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  10. #10
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Come dice un vecchio proverbio:

    Chi fa di sua testa, paga di sua tasca


    A proposito, esempi sull'uso dei Parametri li trovi 'anche' nella mia firma.

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 © 2024 vBulletin Solutions, Inc. All rights reserved.