Come si scrive il comando per aggiornare un Command del DataEnvironment?
Grazie
Come si scrive il comando per aggiornare un Command del DataEnvironment?
Grazie
Enrico Frison
El signore ghe da e suche a chi che no ga i porsei!
credo sia sufficiente:
DataEnvironment.rsNomeCommand.Requery
05.08.2005 - by alka
Auguri all'angelo custode dei moderatori.
Come lo chiamo il command?
DataEvironment.NomeCommand.Requery non funziona...
Se scrivo DataEnvironment.Commands(NomeCommand).Requery mi dice che non supporta quel metodo...
Enrico Frison
El signore ghe da e suche a chi che no ga i porsei!
postami il tuo codice, che te lo sistemo, ok?
05.08.2005 - by alka
Auguri all'angelo custode dei moderatori.
Ci sono due campi di testo che delimitano la data massima (datA) e la data minima (datDa) entro cui voglio cercare.codice:Const Path_DB As String = "c:\Lavori\DBAllarmi" Const File_DB As String = "dballarmi.mdb" Private Sub cmdRaggr_Click() Dim db_file As String Dim Conn As ADODB.Connection Dim rs As ADODB.Recordset Dim SQL As String Dim datDa As Date Dim datA As Date If txtDa.Text <> "" Then datDa = CDate(txtDa.Text) datDa = DatePart("m", datDa) & "/" & DatePart("d", datDa) & "/" & DatePart("yyyy", datDa) Else intMsg = MsgBox("Inserire data inizio", vbOKOnly + vbExclamation, "Errore!") End If If txtA.Text <> "" Then datA = CDate(txtA.Text) datA = DatePart("m", datA) & "/" & DatePart("d", datA) & "/" & DatePart("yyyy", datA) Else intMsg = MsgBox("Inserire data Fine", vbOKOnly + vbExclamation, "Errore!") End If 'Controllo che non ci siano stati errori If Not intMsg = 1 Then db_file = App.Path If Right$(db_file, 1) <> "\" Then db_file = db_file & "\" db_file = db_file & "dballarmi.mdb" Set Conn = New ADODB.Connection Conn.ConnectionString = _ "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=" & db_file & ";" & _ "Persist Security Info=False" Conn.Open SQL = "UPDATE alarm_table SET DataInizio = #" & datDa & "#, " & _ "DataFine = #" & datA & "#" Set rs = Conn.Execute(SQL, , adCmdText) Conn.Close DataEnvironment1.rsRaggruppam.Open DataEnvironment1.rsRaggruppam.Requery 'Qui apro i report If chkNo.Value = False Then ' Questo è il dataReport completo rptRaggr.WindowState = vbMaximized rptRaggr.Caption = "Report dal " & datDa & " al " & datA rptRaggr.Show vbModal Else ' Questo è il dataReport vuoto SQL = "SELECT DISTINCT DataInizio, DataFine " & _ "FROM " & _ "alarm_table" Set rs = Conn.Execute(SQL, , adCmdText) Set rptNull.DataSource = rs rptNull.WindowState = vbMaximized rptNull.Caption = "Report dal " & datDa & " al " & datA rptNull.Show vbModal rs.Close Set rs = Nothing Conn.Close End If DataEnvironment1.rsRaggruppam.Close Set Conn = Nothing Else frmMain.SetFocus End If End Sub
Dato che non riuscivo a fare di meglio. Ho pensato di creare due campi nella tabella chiamati DataInizio e DataFine in cui con l'UPDATE scrivevo le due date su tutti i record.
In pratica se faccio la prima selezione funziona, poi se chiudo il report e cambio i parametri mi dà quelli di prima. Però se chiudo un'altra volta e riapro con i nuovi parametri funziona...
In pratica funziona una volta su due...
Enrico Frison
El signore ghe da e suche a chi che no ga i porsei!
scusami, potresti evidenziarmi in rosso il codice che non va?
:quipy: oggi non sono proprio al massimo, eh?
05.08.2005 - by alka
Auguri all'angelo custode dei moderatori.
Non è che non funziona. Allora aiutami so che tu te ne intendi.
Questa routine apre il report e fin qui tutto ok. ma se lo chiudo, cambio i valori della maschera e lo riapro mi da i valori di prima. Se lo chiudo nuovamente e lo riapro con questi nuovi valori questa seconda volta funziona. Vorrei inserire la stringa di aggiornamento nel punto giusto. In pratica quell'UPDATE deve scrivere nel db, e poi il DataEnvironment dovrebbe leggere. Invece ho l'impressione che il dataEnvironment legga prima dell'update.
Enrico Frison
El signore ghe da e suche a chi che no ga i porsei!
ok, tutto chiaro.
è qui che non legge correttamente, giusto?codice:SQL = "UPDATE alarm_table SET DataInizio = #" & datDa & "#, " & _ "DataFine = #" & datA & "#" Set rs = Conn.Execute(SQL, , adCmdText) Conn.Close DataEnvironment1.rsRaggruppam.Open DataEnvironment1.rsRaggruppam.Requery
05.08.2005 - by alka
Auguri all'angelo custode dei moderatori.
esattamente... è come se impiegasse troppo tempo per aggiornare il db e di conseguenza quando fa la requery del command trova ancora i valori vecchi... può essere?
Enrico Frison
El signore ghe da e suche a chi che no ga i porsei!
si, potrebbe essere come dici tu.
però io non ho mai avuto questi problemi col DataEnvironment...
devo pensare... :master:
prova a scrivere così:
DataEnvironment1.rsRaggruppam.Open
DataEnvironment1.rsRaggruppam.Property.Refresh
DataEnvironment1.rsRaggruppam.Requery
05.08.2005 - by alka
Auguri all'angelo custode dei moderatori.