Salve a tutti.
Sono a chiedere il vostro gentile supporto per una problematica molto strana.
Ho creato una form che all'apertura (grazie ad una Selection in vba inserita nell'evento open e ad un applyfilter nella medesimo evento open) va a filtrare i record di una tabella sulla base di una lunga serie di condizioni.
Il punto è che se apro direttamente la form da access (in pratico faccio due click sul simbolo del form nell'elenco degli oggetti access) allora esso funziona perfettamente. Se invece apro la form da un altra form tramite un comando VBA openform allora ottengo un errore di Runtime.
A seguire i dettagli:
[
Ecco il codice inserito nell'evento on Open della form con i record da filtrare:
Private Sub Form_Open(Cancel As Integer)
Dim z As String, msg As String, risposta As String
z = "SELECT ID_MANOVRA, DATA, LINEA, TIPOMANOVRA, CODICEPRODOTTO, TK, MANOVRAINVIATA, ORAINVIATA, MANOVRARICEVUTA,ORARICEZIONE, MANOVRAEFFETTUATA, ORAEFFETTUAZIONE FROM TblInputRunning WHERE ((((DATA) >= (dATE()-4)) AND RICHIEDENTE = 'FILLING' AND MANOVRAEFFETTUATA = FALSE AND MANOVRAINVIATA = TRUE) OR (DAY(DATA) = DAY(NOW()) AND (ORAEFFETTUAZIONE >= DateAdd('h',-2, Now())) AND RICHIEDENTE = 'FILLING' AND MANOVRAINVIATA = TRUE AND MANOVRAEFFETTUATA = TRUE)) ORDER BY DATA;"
DoCmd.ApplyFilter z
Exit Sub
Questo invece il codice che richiama l'apertura della form:
Private Sub cmdManovre_Click()
DoCmd.OpenForm "frmViewFilling_Inviate"
Exit Sub
Per ulteriore info, temendo un errore nella sintassi della SELECTION (soprattutto per le date) ho fatto un test con una condizione unica e senza date ( che riporto di seguito), ma nulla è cambiato avendo lo stesso comportamento (tutto funziona aprendolo manualmente con 2 click, non funziona se lo avvio dall'altra form.
z = "SELECT ID_MANOVRA, DATA, RICHIEDENTE, LINEA, TIPOMANOVRA, CODICEPRODOTTO, TK, MANOVRAINVIATA, ORAINVIATA, MANOVRARICEVUTA, ORARICEZIONE, MANOVRAEFFETTUATA, ORAEFFETTUAZIONE, MANOVRAANNULLATA, ORAANNULLAMENTO, STATUS FROM TblManovre WHERE MANOVRAINVIATA = TRUE;"
Infine, il messaggio di errore che ottengo è:
Runtime 2046 - The command or action "applyfilter"is not availbale now
Ho usato già in altri database questo schema, senza avere mai problemi prima.
Qualcuno sarebbe così gentile da darmi qualche idea?
Grazie mille
Ciao