Acquista i nostri libri consigliati su Amazon.it
+ Rispondi al messaggio
Visualizzazione dei risultati da 1 a 9 su 9

codice vb per aprire maschera con filtri

  1. #1
    marcello1 non  in linea Novello
    buongiorno, con la procedura guidata ho creato un pulsante per l'apertura di una maschera filtrata con 1 campo. Siccome ho necessit di impostare il filtro su due campi, ho modificato nel seguente modo:
    codice HTML:
    Private Sub Comando158_Click()
    On Error GoTo Err_Comando158_Click
    
        Dim stDocName As String
        Dim stLinkCriteria As String
    
        stDocName = "servizi_zl1"
        
        stLinkCriteria = "[data_servizio]=" & "#" & Me![data_lancio] & "#" OR "[zona_lancio]=" & "'" & Me![CasellaCombinata95] & "'"
        DoCmd.OpenForm stDocName, , , stLinkCriteria
    
    Exit_Comando158_Click:
        Exit Sub
    
    Err_Comando158_Click:
        MsgBox Err.Description
        Resume Exit_Comando158_Click
        
    End Sub
    per mi diche che il tipo non corrispondente. Dove sbaglio?
    grazie anticipatamente. Marcello

  2. #2
    L'avatar di @Alex
    @Alex non  in linea Moderatore Globale
    Suggerirei una cosa pi funzionale... anche perch se, non inserisci un criterio quello che hai scritto NON FUNZIONA.

    Dim strFiltro As String
    
    If Len(Me![data_lancio].Value & vbNullString) > 0 Then strFiltro = strFiltro & "[data_servizio]=" & clng(Me![data_lancio].Value)  & " AND "
    If Len(Me![CasellaCombinata95].Value & vbNullString) > 0 Then strFiltro = strFiltro & "[zona_lancio]=" & Me.cboModello.Value & " AND "
    
    If Len(strFiltro) > 0 Then strFiltro = Mid$(strFiltro, 1, Len(strFiltro) - 5) ' nel caso di OR mettere 4
    
    DoCmd.OpenForm stDocName, , , strFiltro
    
    4 Osservazioni:
    1) Per i campi data non basta mettere "#" serve considerare l'accezione anglosaassone, oppure ricondirre al Numerico che non affetto da questa formattazione, come vedi sopra
    2) Solitamente le ComboBox, nel tuo caso [CasellaCombinata95] hanno come Campo associato una PK che Numerica di tipo Long motivo per cui non ho messo gli Apicetti, nel tuo caso tu la formatti come testo inserendo gli APICETTI, sei sicuro...?
    3) Non si possono lasciare i controlli nominati con il Nome Automatico [CasellaCombinata95] tra 2 mesi non ti ricordi pi cosa rappresenta, chiamalo [cboZonaLancio]... serve un po di ordine mentale.
    4) Usi OR nel filtro... se sei sicuro che sia giusto OR allora modifica il codice suggerito...
    ℹ️ Leggi di pi su @Alex ...

  3. #3
    marcello1 non  in linea Novello
    ho provato ma mi d "impossibile trovare il metodo o il membro dei dati" e mi evidenzia la parte con scritto Me.cboModello.Value

  4. #4
    marcello1 non  in linea Novello
    ti riporto il codice come l'ho ricopiato io. Non vorrei avere commesso qualche errore anche solo nel copiare:
    Private Sub Comando159_Click()
    On Error GoTo Err_Comando159_Click
    
    Dim strFiltro As String
     
    If Len(Me![data_lancio].Value & vbNullString) > 0 Then strFiltro = strFiltro & "[data_servizio]=" & CLng(Me![data_lancio].Value) & " AND "
    If Len(Me![CasellaCombinata95].Value & vbNullString) > 0 Then strFiltro = strFiltro & "[zona_lancio]=" & Me.cboModello.Value & " AND "
     
    If Len(strFiltro) > 0 Then strFiltro = Mid$(strFiltro, 1, Len(strFiltro) - 5) ' nel caso di OR mettere 4
     
    DoCmd.OpenForm stDocName, , , strFiltro
    
    End Sub
    

  5. #5
    L'avatar di @Alex
    @Alex non  in linea Moderatore Globale
    Scusa ma quella combo tu non l'hai inserita... ovviamente un banale refuso la devi modificare con [CasellaCombinata95]... credo che questa cosa tu debba riuscire a gestirla da solo...!
    ℹ️ Leggi di pi su @Alex ...

  6. #6
    marcello1 non  in linea Novello
    ho provato a modificare quanto mi hai detto ma adesso mi dice che l'etichetta non definita. Ho provato ad aggiungere anche end sub ma niente. Potresti darmi qualche altro consiglio?
    Quote Originariamente inviato da marcello1 Visualizza il messaggio
    ti riporto il codice come l'ho ricopiato io. Non vorrei avere commesso qualche errore anche solo nel copiare:
    Private Sub Comando159_Click()
    On Error GoTo Err_Comando159_Click
    
    Dim strFiltro As String
     
    If Len(Me![data_lancio].Value & vbNullString) > 0 Then strFiltro = strFiltro & "[data_servizio]=" & CLng(Me![data_lancio].Value) & " AND "
    If Len(Me![CasellaCombinata95].Value & vbNullString) > 0 Then strFiltro = strFiltro & "[zona_lancio]=" & Me.cboModello.Value & " AND "
     
    If Len(strFiltro) > 0 Then strFiltro = Mid$(strFiltro, 1, Len(strFiltro) - 5) ' nel caso di OR mettere 4
     
    DoCmd.OpenForm stDocName, , , strFiltro
    
    End Sub
    

  7. #7
    marcello1 non  in linea Novello
    Private Sub Comando159_Click()
    On Error GoTo Err_Comando159_Click
    
    Dim strFiltro As String
     
    If Len(Me![data_lancio].Value & vbNullString) > 0 Then strFiltro = strFiltro & "[data_servizio]=" & CLng(Me![data_lancio].Value) & " AND "
    If Len(Me![CasellaCombinata95].Value & vbNullString) > 0 Then strFiltro = strFiltro & "[zona_lancio]=" & Me.CasellaCombinata95.Value & " AND "
     
    If Len(strFiltro) > 0 Then strFiltro = Mid$(strFiltro, 1, Len(strFiltro) - 5) ' nel caso di OR mettere 4
     
    DoCmd.OpenForm stDocName, , , strFiltro
    
    Exit Sub
    End Sub
    
    Ultima modifica di AntonioG; 04-07-2021 20:24  Motivo: I tag CODE

  8. #8
    L'avatar di @Alex
    @Alex non  in linea Moderatore Globale
    Manca l'etichetta della gestione errori.... mi pare tu faccia errori troppo banali.

    P.S. fai anche attenzione al Nome della Maschera da aprire...[stDocName] che se non la definisci non si apre nulla...
    Ultima modifica di @Alex; 05-07-2021 08:09 
    ℹ️ Leggi di pi su @Alex ...

  9. #9
    @marcello ... devi utilizzare i tag CODE per il codice nel forum. NON lo dimenticare ... questa volta li aggiungo io.

    E poi scusa, ma se hai un messaggio del tipo

    "l'etichetta non definita"

    cosa chiedi ancora? Devi solo definire l'etichetta che manca (Err_Comando159_Click).

    Anche nell'altro caso, come dice Alex, basta leggere il messaggio che ti viene indicato per rimediare.

    Mi pare poco utile chiedere al forum in questi casi, parliamo delle basi basi ...
    ℹ️ Leggi di pi su AntonioG ...

+ Rispondi al messaggio

Potrebbero interessarti anche ...

  1. Risposte: 10
    Ultimo Post: 23-03-2019, 12:52
  2. Articolo: Maschera FILTRI
    Da @Alex nel forum Microsoft Access
    Risposte: 14
    Ultimo Post: 27-02-2017, 12:55
  3. Filtri su maschera
    Da MauroMB nel forum Microsoft Access
    Risposte: 15
    Ultimo Post: 17-12-2016, 00:18
  4. Risposte: 11
    Ultimo Post: 15-11-2010, 20:52
  5. Risposte: 2
    Ultimo Post: 05-03-2009, 12:11