Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    252

    [vb6] aiuto sql, select * from......

    ragazzi devo fare una ricerca per periodo di data
    ho 2 txt con le due date di riferimento e voglio cercare sul db tutti i record nell'intervallo di date. ma non mi viene niente


    Set rs_menu = db_menu.OpenRecordset("select * from locale where data like......









    p.s. lo so dao è superato ma ormai il programma è finito e sto per studiare il vb10

  2. #2
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    252

    Re: [vb6] aiuto sql, select * from......

    Originariamente inviato da garzone
    ragazzi devo fare una ricerca per periodo di data
    ho 2 txt con le due date di riferimento e voglio cercare sul db tutti i record nell'intervallo di date. ma non mi viene niente


    Set rs_menu = db_menu.OpenRecordset("select * from locale where data like......









    p.s. lo so dao è superato ma ormai il programma è finito e sto per studiare il vb10
    ok metto between ... mi sono ricordato alla fine.
    però mi succede una cosa strana

    io ho nel db delle date che vanno dal 25/09/2010 al 04/10/2010
    se faccio una ricerca che va dal 27/09/2010 mi restituisce cmq tutte le date di settembre anche quelle precedenti alla data ...

    la stringa ultima è questa

    codice:
    Set rs_menu = db_menu.OpenRecordset("select * from locale where data between '" & FrmConsumabili.TxtDataIn.Value & "' and '" & FrmConsumabili.TxtDataOut.Value & "'    ", dbOpenDynaset)

  3. #3
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Devi passare alla query la data nel formato americano usando:

    codice:
    Dim sDataIN As string
    sDataIN = Format(FrmConsumabili.TxtDataIn.Value, "MM/DD/YYYY")

  4. #4
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    252
    stesso problema,

    praticamente se cerco nello stesso mese intervalli di date la ricerca ha buon esito
    se cerco tra due mesi diversi mi restituisce tutti i record.

    se formatto la stringa come mi hai detto te non mi trova niente
    se le variabili se imposto con as date
    mi fa cmq la stessa cosa

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

    Se usi un MDB di Access le date vanno racchiuse tra cancelletto # (non tra apici) ed il formato è obbligatoriamente quello americano.

    Se usi un'altra database allora potrebbe essere dipeso dalle impostazioni sulle date, se previste.

    Oltre a questo, vi sono altri aspetti da considerare sulle date, come spiego dettagliatamente in questo articolo sull'uso dei Command e Parametri di ADO:
    ADO, Parametri ed affini
    http://nuke.vbcorner.net/Articoli/VB...5/Default.aspx


  6. #6
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    252
    codice:
    Dim Data1 As String, Data2 As String
    Data1 = Format(FrmConsumabili.TxtDataIn, "mm/dd/yyyy")
    Data2 = Format(FrmConsumabili.TxtDataOut, "mm/dd/yyyy")
    Set db_menu = OpenDatabase(Frmdb.TxtDbDati.Text)
    Set rs_menu = db_menu.OpenRecordset("SELECT * FROM locale WHERE data BETWEEN '" & Data2 & "' and '" & Data1 & "' ", dbOpenDynaset)
    scusa gibra ma sarò rinco io però non mi funge uguale
    se metto # non va e neanche se metto le date in formato americano

    il db è .mdb
    campo data formato data dd/mm/yyyy
    su access non posso impostare quello americano

    lo so che dovrei in ado ma nel programma manca solo questa ricerca per periodo e non mi va di rifare tutto. Anche eprchè mi è arrivato il libro per il 2010 e voglio dimenticare il vb6.

    Aiutami perfavore .....come al solito

  7. #7
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Originariamente inviato da garzone
    codice:
    Dim Data1 As String, Data2 As String
    Data1 = Format(FrmConsumabili.TxtDataIn, "mm/dd/yyyy")
    Data2 = Format(FrmConsumabili.TxtDataOut, "mm/dd/yyyy")
    Set db_menu = OpenDatabase(Frmdb.TxtDbDati.Text)
    Set rs_menu = db_menu.OpenRecordset("SELECT * FROM locale WHERE data BETWEEN '" & Data2 & "' and '" & Data1 & "' ", dbOpenDynaset)
    scusa gibra ma sarò rinco io però non mi funge uguale
    se metto # non va e neanche se metto le date in formato americano
    Ma tu NON stai usando i cancelletti, ma gli apici!!!
    Devi mettere entrambi!
    Prova così:
    codice:
    Data1 = "#" & Format(FrmConsumabili.TxtDataIn, "mm/dd/yyyy") & "#"
    Data2 = "#" & Format(FrmConsumabili.TxtDataOut, "mm/dd/yyyy") & "#"
    SELECT * FROM locale WHERE data BETWEEN " & Data2 & " AND " & Data1
    Ovviamente questo vale SOLO quando si usa il linguaggio SQL (come in questo caso).
    Vi sono altri casi in cui le date vanno indicate normalmente:
    1) quando si usano le query parametriche memorizzate nel database
    2) quando si accede alle proprietà del Recordset


    Originariamente inviato da garzone
    il db è .mdb
    campo data formato data dd/mm/yyyy
    su access non posso impostare quello americano
    Semplificando:
    Access (come tutti i database) 'memorizza internamente' le date sempre nel formato americano (questa impostazione NON è modificabile in alcun modo), ma quando apri la tabella in ambiente MSAccess 'lui' te la mostra nel formato italiano (oppure quello delle impostazioni internazionale del tuo computer).
    Ma questa è un'impostazione interna dell'ambiente MS Access che nulla ha a che vedere con l'ambiente VB6.0 e men che meno con ADO e DAO.
    Ecco spiegato del perchè molti vanno in confusione.

    Quando si usa il database da VB6, invece, ADO e DAO leggono e scrivono nel formato originale che è MM/DD/YYYY (quando si usa SQL, tienilo presente).



    Originariamente inviato da garzone
    lo so che dovrei in ado
    Che usi ADO o DAO non fa differenza, sempre i cancelletti (#) ci vogliono.


    Originariamente inviato da garzone
    Anche eprchè mi è arrivato il libro per il 2010 e voglio dimenticare il vb6.
    Ok, però sappi che anche in VB.NET la situazione non cambia. Non è una questione di linguaggio, ma di database.


  8. #8
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    252
    Set db_menu = OpenDatabase(Frmdb.TxtDbDati.Text)
    Data1 = "#" & Format(FrmConsumabili.TxtDataIn, "mm/dd/yyyy") & "#"
    Data2 = "#" & Format(FrmConsumabili.TxtDataOut, "mm/dd/yyyy") & "#"
    Set rs_menu = db_menu.OpenRecordset("SELECT * FROM locale WHERE data BETWEEN ' " & Data2 & " ' AND ' " & Data1 & " ' ", dbOpenDynaset)


    gibra stesso problema
    la ricerca sullo stesso mese funziona su mesi diversi no

  9. #9
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Originariamente inviato da garzone
    Set db_menu = OpenDatabase(Frmdb.TxtDbDati.Text)
    Data1 = "#" & Format(FrmConsumabili.TxtDataIn, "mm/dd/yyyy") & "#"
    Data2 = "#" & Format(FrmConsumabili.TxtDataOut, "mm/dd/yyyy") & "#"
    Set rs_menu = db_menu.OpenRecordset("SELECT * FROM locale WHERE data BETWEEN ' " & Data2 & " ' AND ' " & Data1 & " ' ", dbOpenDynaset)


    gibra stesso problema
    la ricerca sullo stesso mese funziona su mesi diversi no
    Perchè la tua query è sbagliata.
    Rileggi i miei post.

  10. #10
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    252
    Set db_menu = OpenDatabase(Frmdb.TxtDbDati.Text)
    Data1 = "#" & Format(FrmConsumabili.TxtDataIn, "mm/dd/yyyy") & "#"
    Data2 = "#" & Format(FrmConsumabili.TxtDataOut, "mm/dd/yyyy") & "#"
    Set rs_menu = db_menu.OpenRecordset("SELECT * FROM locale WHERE data BETWEEN " & Data2 & " AND " & Data1 & " ", dbOpenDynaset)

    giusto troppi apici
    ma sapevo che senza apici mi dava errore nella query con i campi quindi con le variabili no?!!

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.