Visualizzazione dei risultati da 1 a 5 su 5

Discussione: VBA - apllicare filtro

  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    361

    VBA - apllicare filtro

    Ciao
    E' assolutamente la prima volte che utilizzo le maschere di access per visualizzare i dati delle informazioni.
    Il db è di una semplicità mostruosa:
    2 tabelle di cui una chiamata zona con campi id e zona (che è un elenco di città)
    e l'altra con diversi campi, tra cui uno con id della zona.
    Ora, nella form che mi sono creato, oltre alle "edit" con i campi visualizzati, ho aggiunto una combo, collegata alla tabella zona.
    Al clic di quella combo vorrei che mi selezioni tutti i record = al campo selezionato nella combo.

    ho trovato una funzione che penso essere utile:

    codice:
    Private Sub Combo14_Click()
    Me.Filter = "zona = " & Combo14.Text
    Me.FilterOn = True
    End Sub
    Ma non mi riconosce il campo zona (il campo zona l'ho creato con lookup wizard,in visualizzazione table designe mi ha creato lo ha sostituito con il campo dell'id della tabella delle zone)

    Come posso risolvere il problema???

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    361
    vedo che nessuno sa darmi risposta....

    Semplificando la domanda.

    Come faccio ad aprire una tabella da codice??? (ricordo che sono in access)

    avevo fatto così
    codice:
    Option Compare Database
    Dim zona As New ADODB.Recordset
    
    Private Sub Combo14_Click()
    
    Set conn = New ADODB.Connection
    conn.ConnectionString = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & App.Path & "scorte.mdb"
    conn.Open
    
    zona.Open "zona", conn, 1, 1
    
    
    Do While Not zona.EOF
       If Combo14.Text = zona(1) Then
          Exit Do
       End If
    Loop
    
    Me.Filter = "id = " & zona(0)
    Me.FilterOn = True
    
    End Sub
    Purtroppo però non mi riconosce conn ,
    Essendo già in access, come faccio a scorrere una tabella????

  3. #3
    Utente di HTML.it L'avatar di sanny82
    Registrato dal
    Mar 2003
    Messaggi
    689
    Prova così:

    Private Sub Form_Load()
    dbArchivio.DatabaseName = App.Path & "\nome_db.mdb"
    End Sub




    Dim StringaSQL As String
    Dim CampoRicerca As String
    Dim CampoOrdinamento As String


    If CampoRicerca <> "" Then
    StringaSQL = "SELECT * FROM products"
    StringaSQL = StringaSQL + " WHERE acc_yn = False And Gambro = True And " + CampoRicerca + "order by basket,description"
    Else
    StringaSQL = "SELECT * FROM products WHERE acc_yn = False And Gambro = true order by basket,description"
    End If
    una parola è poca e due sono troppe

  4. #4
    Utente di HTML.it L'avatar di cik
    Registrato dal
    Jul 2003
    Messaggi
    449
    1. se usi le maschere di access, in ogni maschera puoi specificare una tabella / query come origine dati (proprietà->origine record). Qui dovresti avere la tabella zone

    2. la connessione di default al vb la trovi come Currentproject.connection e non è necessario che ne fai una tu.
    S'i fosse foco, arderei 'l mondo

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    361
    grazie cik, mi sembrava assurdo infatti dovermi creare una connessione al database....
    Ora funziona alla grande

    codice:
    Dim zona As New ADODB.Recordset
    
    
    Private Sub Combo14_Click()
    
    Set zona = Nothing
    zona.Open "zona", CurrentProject.Connection, 1, 1
    
    Do While Not zona.EOF
       If Combo14.Text = zona(1) Then
          Exit Do
       End If
       zona.MoveNext
    Loop
    
    Me.Filter = "id = " & zona(0)
    Me.FilterOn = True
    
    End Sub

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.