Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [Access 07 e VB6] maschera divisa con query e clausola where

    Salve, scrivo un altro post per chiedere aiuto sul un problemino che ho:

    utilizzo access 2007 e la versione 6 di vb associata ad esso.

    Ho creato una maschera divisa (Maschera2) per visualizzare i dati che arrivano da una query, definita nello stesso db (e funzionante).
    La query è classica:
    select [campi] from [tabella] where [campo] = "valore".

    questa maschera deve essere aperta al click di un bottone ubicato su una maschera precedentemente creata(Maschera 1)

    il problema è:
    come passare un valore da Maschera1 a Maschera2 e passarlo come valore della clausola Where della query associata a Maschera2?

    per ora al click ho associato il seguente codice:



    codice:
    Dim matricolaDaForm As String matricolaDaForm = Form_RicercaPerMatricola.matricola DoCmd.OpenForm "Maschera2", , , [CodDip] = " & matricolaDaForm"
    l'idea mia è utilizzare DoCmd.OpenForm e passargli la maschera da aprire e il valore della clausola where.

    spero di essermi espresso bene e aver rispettato le regole.

    saluti
    - Hamburger + Soppressata

  2. #2
    ho tolto la clausola WHERE dalla query (che avevo erroneamente lasciato)
    e gli passo come parametro del metodo openForm il valore che voglio diventi
    quello di una clausola where...

    solo che mi da il seguente errore:


    Errore di run-time '2465' Microsoft Office Access: Impossibile trovare il campo "|" (?????????????) a cui si fa riferimento nell'espressione.
    avete qualche notizia?
    - Hamburger + Soppressata

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2005
    residenza
    TIVOLI, Roma, Italia
    Messaggi
    27
    Se per "maschera" intendi una Form, fai così:
    crea una variabile globale mettendo dentro un modulo (tasto destro sul progetto > Inserisci> Modulo) la dichiarazione:

    Global [Nome variabile] as [Tipo variabile]

    Poi nella Form1 metti dentro la variabile il valore che andrà nella WHERE della Form2



    E nella Form2 metti
    "select [campi] from [Tabella] where [campo]=" & "'" & [Nome variabile] & "'"
    Ovviamente gli apici vanno solo se il dato è di tipo string

    Garantito che funziona, l'ho usato un miliardo di volte
    Ciao

  4. #4
    Grazie per la risposta!


    Unico problema:
    essendo un novellino in materia non ho capito bene come fare...
    ora provo e ti faccio sapere!
    - Hamburger + Soppressata

  5. #5
    Eccoci,
    allora ho risolto in questo modo:

    ho inserito un modulo nel progetto in cui ho dichiarato la variabile globale AS tipo.

    Nella mia maschera iniziale setto il valore di questa variabile (così se dovesse servirmi in futuro non ho problemi a reperirla)

    Nella maschera1 associo ad un pulsante una routine che chiama la maschera2 nel seguente modo:

    DoCmd.OpenForm "Maschera2, , , "[CAMPO] = " & "'" & VARIABILE & "'"

    che essendo una stringa va tra apici singoli.

    La seconda maschera è una maschera divisa con una query associata e il parametro di OpenForm (quello qui sopra) crea una clausola WHERE alla query associata.


    Quindi si apre la nuova maschera con i dati "filtrati" WHERE qualcheCampo.

    grazie a tutti per l'aiuto.

    si può mettere risolto?

    saluti
    - Hamburger + Soppressata

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.