popolare automaticamente un campo

Anonimo
2012-07-31T10:07:44+00:00

Ho creato un Db  

Ho creato 3 tabelle ;

              1 - Fornitori (Fornitore, Città, Centro di Costo )

               2 - GL (Fornitore, Data Fattura, Centro di Costo , Importo)

Ho fatto una Query che hg collegato le tabelle tramite il campo Fornitore.

Nella tabella GL:

Ho collegato il campo Fornitore in modo che sia swlwzionabile dalla tabella Fornitori tramite una  finestra a tendina ; fin qui tutto bene.

Vorrei che selezionando il Fornitore che mi serve venisse popolato automaticamente il campo Centro di Costo associato .

Come si fa??

Grazie

Microsoft 365 e Office | Access | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento
Risposta accettata dall'autore della domanda
Anonimo
2012-08-01T15:56:13+00:00

Ciao,

se i campo della tabella GL si chiama centro di costo, la casella di testo che hai nella maschera, associata al campo CdC, probabilmente si chiamerà centro_di_Costo se tu non gli hai dato un altro nome per cui:

Private Sub ConnettiTabella()

Dim con As Object

Dim rs As Object

Set con = Application.CurrentProject.Connection

Set rs = CreateObject("ADODB.Recordset")

rs.Open "Select [Centro di costo] AS CC FROM Fornitori Where Fornitore ='" & tendina.SelText & "'", con, 1

myVar = rs("CC")

MsgBox Prompt:=myVar

me.centro_di_Costo = myvar

 End Sub

m invece di tutto questo accrocchio potevi semplicemnte fare:

Sub Tendina_Change()

me.centro_di_Costo=Dlookup("[Centro di costo]" , "Fornitori", "Fornitore='" & tendina.SelText & "'")

End Sub

La risposta è stata utile?

0 commenti Nessun commento

33 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2012-08-01T13:16:39+00:00

    Questo è quello che ho fatto:

    Ho creato unaa maschera.

    Ho creato una combo a tendina chiamata Tendina :)) (nelle prop.)

    Ho associato a questa Tendina un evento change con una sub:

    con un altra sub hofatto la query:

    Option Compare Database

     Dim myVar As String

    Private Sub ConnettiTabella()

     Dim con As Object

     Dim rs As Object

     Set con = Application.CurrentProject.Connection

     Set rs = CreateObject("ADODB.Recordset")

     rs.Open "Select [Centro di costo] AS CC  FROM Fornitori Where Fornitore ='" & tendina.SelText & "'", con, 1  

     myVar = rs("CC")

     MsgBox Prompt:=myVar

     End Sub

    Sub Tendina_Change()

    ConnettiTabella

    End Sub

    Ora vorrei popolare  un campo proveniente da GL che non ha dati ma si Chiama anche lui Centro di costo  con myVar...

    il msgbox fa la query correttamente: punta al fornitore e mi restituisce bene il CC

    (centro di costo).

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2012-08-01T12:55:20+00:00

    Supponiamo che la tua variabile si chiami X, e il campo dove devi visualizzarlo si chami CentroDiCosto:

    CentroDiCosto = X

    sempre che X sia una variabile globale o che l'assegnazione avvenga nella stessa routine dove è definita X. La subroutine l'hai definta nel codice della maschera o in un modulo a se stante?

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2012-08-01T12:31:13+00:00

    Infatti funziona:)) ho cambiato alcuni errori di denominazione campi e funzia benissimo.

    Ho messo però il risultato in una variabile e l'ho mostrata con un msgbox. Ora il pezzettino finale.

    Come faccio a dire ad un campo (sono in modalità maschera) che il suo dataprovider è la variabile contenente il risultato della Query??

    in altre parole da maschera mi creo un campo; dove metto il sorgente dati (la mia variabile?

    Grazie... cmq funziona...

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2012-08-01T12:16:01+00:00

    Ora provo.

    Ho creato una sub con l'evento change e una sub con la connessione e select al recordset

    Proverò a chiamare la sub dalla sub dell'evento Change.

    Presumo che il risultato possa essere:

    All'evento cambia item della tendina chiama la connessione fai la select dove il forintore è uguale a quello selezionato (sel.text) chiudi connessione... dovrebbe funzionare.. almeno nel mio immaginario :)))

    La risposta è stata utile?

    0 commenti Nessun commento