Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it L'avatar di x69asterix
    Registrato dal
    Jan 2005
    Messaggi
    1,303

    [vb6] Ancora SELECT * FROM....

    Ciao a tutti,
    nuovo quesito!

    Option Explicit
    *********************************
    Public Cn As New ADODB.Connection
    Public Rs As New ADODB.Recordset
    *********************************
    Private Sub Combo1_Click()
    With Cn
    .ConnectionString = "Provider = Microsoft.Jet.OleDB.4.0;" & _
    "Data Source =" & App.Path & "\elenco.mdb"

    .ConnectionTimeout = 5
    .CursorLocation = adUseClient
    .Mode = adModeShareDenyNone
    .Open
    End With
    With Rs
    .ActiveConnection = Cn
    .LockType = adLockOptimistic
    End With
    Rs.Open "SELECT * FROM elenco WHERE Sommatotale = '" & Combo1.Text & "'"
    Set DataGrid2.DataSource = Rs

    [sommatotale è una query.mdb]

    e fin qui tutto normale, ma se sull' evento del click contenporaneamente voglio inserire anche questa stringa come la passo??

    Rs.Open "SELECT * FROM elenco WHERE data = '" & Combo1.Text & "'"

    Set DataGrid1.DataSource = Rs
    [invece elenco è una tabella.mdb]

    End Sub

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Che vuoi dire con "contemporaneamente" ?

  3. #3
    Utente di HTML.it L'avatar di x69asterix
    Registrato dal
    Jan 2005
    Messaggi
    1,303
    Originariamente inviato da oregon
    Che vuoi dire con "contemporaneamente" ?
    associato all' evento del click!

  4. #4
    Utente di HTML.it L'avatar di Brainjar
    Registrato dal
    Nov 2004
    Messaggi
    1,162
    Devi fare un po' di chiarezza :

    1) Sommatotale è SommaDitotale ?
    2) query.mdb ?!
    3) Combo1 cosa contiene ? Date, Numeri, Stringhe ?

    Usa il tag '[*CODE] ... [*/CODE]' (togli gli asterischi), perchè il
    codice che posti non è leggibile.

    La domanda 'Che vuoi dire con "contemporaneamente" ?' si riferiva
    alla sequenza delle operazioni, ovvero, devi fare 2 SELECT distinte o
    devi farne UNA SOLA con entrambe le condizioni ?

    Se non chiarisci questi aspetti, è impossibile aiutarti ?

    Ciao,
    Ciao, Brainjar

  5. #5
    Utente di HTML.it L'avatar di x69asterix
    Registrato dal
    Jan 2005
    Messaggi
    1,303
    Originariamente inviato da Brainjar
    Devi fare un po' di chiarezza :

    1) Sommatotale è SommaDitotale ?
    2) query.mdb ?!
    3) Combo1 cosa contiene ? Date, Numeri, Stringhe ?

    Usa il tag '[*CODE] ... [*/CODE]' (togli gli asterischi), perchè il
    codice che posti non è leggibile.

    La domanda 'Che vuoi dire con "contemporaneamente" ?' si riferiva
    alla sequenza delle operazioni, ovvero, devi fare 2 SELECT distinte o
    devi farne UNA SOLA con entrambe le condizioni ?

    Se non chiarisci questi aspetti, è impossibile aiutarti ?

    Ciao,
    ciao,

    1) Sommatotale è SommaDitotale ?
    allora
    è stato un mio errore Sommatotale è Sommatotale
    devo farne UNA SOLA di SELECT con entrambe le condizioni.
    combo1 contiene le date in formato dd.mm.yyyy
    ciao

  6. #6
    Utente di HTML.it L'avatar di Brainjar
    Registrato dal
    Nov 2004
    Messaggi
    1,162
    Bene. Ancora un 'passaggio'.
    Combo1 viene utilizzato in più di una relazione
    codice:
    " .... WHERE Sommatotale = '" & Combo1.Text & "'"
    codice:
    " .... WHERE data = '" & Combo1.Text & "'"
    Supponendo che i valori per Sommatotale siano in Combo2

    Avresti :

    codice:
    " .... WHERE Sommatotale = '" & Combo2.Text & "' AND data = '" & Combo1.Text & "'"
    Non funziona comunque se il campo Sommatotale è di tipo numerico e
    il campo data è di tipo data. Con gli apici ' ' passi delle stringhe.

    In questo caso 'dovrebbe' funzionare una cosa del genere :

    codice:
    " .... WHERE Sommatotale = " & Combo2.Text & " AND data = #" & Combo1.Text & "# "
    Ciao,
    Ciao, Brainjar

  7. #7
    Utente di HTML.it L'avatar di x69asterix
    Registrato dal
    Jan 2005
    Messaggi
    1,303
    Originariamente inviato da Brainjar
    Bene. Ancora un 'passaggio'.
    Combo1 viene utilizzato in più di una relazione
    codice:
    " .... WHERE Sommatotale = '" & Combo1.Text & "'"
    codice:
    " .... WHERE data = '" & Combo1.Text & "'"
    Supponendo che i valori per Sommatotale siano in Combo2

    Avresti :

    codice:
    " .... WHERE Sommatotale = '" & Combo2.Text & "' AND data = '" & Combo1.Text & "'"
    Non funziona comunque se il campo Sommatotale è di tipo numerico e
    il campo data è di tipo data. Con gli apici ' ' passi delle stringhe.

    In questo caso 'dovrebbe' funzionare una cosa del genere :

    codice:
    " .... WHERE Sommatotale = " & Combo2.Text & " AND data = #" & Combo1.Text & "# "
    Ciao,
    allora
    sommatotale è un campo di testo se io eseguo questo codice tutto funziona perfettamente:
    Private Sub Combo1_Click()
    With Cn
    .ConnectionString = "Provider = Microsoft.Jet.OleDB.4.0;" & _
    "Data Source =" & App.Path & "\elenco.mdb"

    .ConnectionTimeout = 5
    .CursorLocation = adUseClient
    .Mode = adModeShareDenyNone
    .Open
    End With
    With Rs
    .ActiveConnection = Cn
    .LockType = adLockOptimistic
    End With
    Rs.Open "SELECT * FROM elenco WHERE Sommatotale = '" & Combo1.Text & "'"
    Set DataGrid2.DataSource = Rs qui mi ritrovo la somma del totale per il giorno che mi seleziono dal combo1.

    Adesso però oltre a visualizzare la somma del giorno scelto dal combo1, sempre sull' evento del click del combo1 vorrei fare partire anche questo codice:

    With Cn
    .ConnectionString = "Provider = Microsoft.Jet.OleDB.4.0;" & _
    "Data Source =" & App.Path & "\medici.mdb"

    .ConnectionTimeout = 5
    .CursorLocation = adUseClient
    .Mode = adModeShareDenyNone
    .Open
    End With
    With Rs
    .ActiveConnection = Cn
    .LockType = adLockOptimistic
    End With

    Rs.Open "SELECT * FROM medici WHERE data= '" & Combo1.Text & "'"

    Set With Cn
    .ConnectionString = "Provider = Microsoft.Jet.OleDB.4.0;" & _
    "Data Source =" & App.Path & "\medici.mdb"


    .ConnectionTimeout = 5
    .CursorLocation = adUseClient
    .Mode = adModeShareDenyNone
    .Open
    End With
    With Rs
    .ActiveConnection = Cn
    .LockType = adLockOptimistic
    End With

    Rs.Open "SELECT * FROM medici WHERE data= '" & Combo1.Text & "'"

    Set DataGrid1.DataSource = Rs dove qui mi dovrei ritrovare i record del giorno selezionato dal combo1.

    In pratica in questo modo mi và in errore ma se sull' evento del click inserisco o il primo o il secondo funziona.

  8. #8
    Utente di HTML.it L'avatar di x69asterix
    Registrato dal
    Jan 2005
    Messaggi
    1,303
    come posso correggere questa istruzione?
    Rs.Open "SELECT * FROM elenco AND Sommatotale WHERE data = '" & Combo1.Text & "'"


    Set DataGrid1.DataSource = Rs
    Set DataGrid2.DataSource = Rs

  9. #9
    Utente di HTML.it L'avatar di Brainjar
    Registrato dal
    Nov 2004
    Messaggi
    1,162
    Hai due mdb, quindi la stessa connessione non puoi utilizzarla se
    prima non la chiudi. Ma Devi chiudere prima il recordset associato
    alla connessione stessa.

    Il sistema più veloce, non il migliore, può essere quello di avere due
    connessioni e due recordset.

    codice:
    Private Sub Combo1_Click() 
    With Cn1 
    .ConnectionString = "Provider = Microsoft.Jet.OleDB.4.0;" & _ 
    "Data Source =" & App.Path & "\elenco.mdb" 
    
    .ConnectionTimeout = 5 
    .CursorLocation = adUseClient 
    .Mode = adModeShareDenyNone 
    .Open 
    End With 
    With Rs1 
    .ActiveConnection = Cn1 
    .LockType = adLockOptimistic 
    End With 
    Rs1.Open "SELECT * FROM elenco WHERE Sommatotale = '" & Combo1.Text & "'" 
    Set DataGrid2.DataSource = Rs1
    
    
    With Cn2 
    .ConnectionString = "Provider = Microsoft.Jet.OleDB.4.0;" & _ 
    "Data Source =" & App.Path & "\medici.mdb" 
    
    .ConnectionTimeout = 5 
    .CursorLocation = adUseClient 
    .Mode = adModeShareDenyNone 
    .Open 
    End With 
    With Rs2 
    .ActiveConnection = Cn2 
    .LockType = adLockOptimistic 
    End With 
    
    Rs2.Open "SELECT * FROM medici WHERE data= '" & Combo1.Text & "'" 
    
    Set DataGrid1.DataSource = Rs2
    
    End Sub


    Ciao,
    Ciao, Brainjar

  10. #10
    Utente di HTML.it L'avatar di x69asterix
    Registrato dal
    Jan 2005
    Messaggi
    1,303

    ottimo lavoro, funziona alla grande!!
    ancora una cosa, se volessi prendere il risultato della Sommatotale ed invece di inserirlo in datagrid, volessi inserirlo in una label come procedo?
    ciao

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.