|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Nov 2004
Città: Camelot
Messaggi: 691
|
Maschera speciale con Access
Ragazzi non so se è il posto giusto per mettere in evidenza il mio
appello ma non conosco altri forum affidabili quanto questo. Sto facendo un database con ACCESS e in una maschera vorrei creare una finestra simile a quella che trovi in moltissimi siti dove in base alla provincia che inserisci nel campo "PROV", nel campo "PAESE" hai la possibilità di scegliere SOLO tra la lista dei comuni di VARESE. ES: Prov: Paese: se inserisco VA nel campo "PROV" posso selezionare nel campo "PAESE" tramite il menù a tendina le voci: "BESOZZO, VARESE, OLTRONA, GAVIRATE, BUSTO ARSIZIO, GALLARATE" ma NON posso selezionare PAVIA perchè non appartiene a qst provincia. Il passo successivo è una volta selezionato il paese, automaticamente dovrebbe riempirsi un campo di nome "abitanti" col numero di abitanti che ho nella tabella. Sono stato abbastanza chiaro? Aiutatemi.
__________________
Ho concluso affari con: thefire1960 - murakami - dr.gazza - teo ssj - Mr.X - Gangerik - dreamtommino - Flipper - Djmarcograndi - thejudgeTnT - CubeDs |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Nov 2002
Città: Morio Cho
Messaggi: 2592
|
In pratica devi eseguire certe query allo scatenarsi di certi eventi.
La provincia la scrivi tu in una textbox? O la scegli da un elenco? Cmq, la combobox dei comuni dovrebbe essere basata su una query parametrica, che selezioni tutti i comuni con condizione (parametrica) la provincia indicata. Forse c'è direttamente la possibilità, nella procedura guidata, di basare la query (che è l'origine dati del controllo "comuni") sulla textbox della provincia. Poi all'evento di uscita dalla textbox (ad esempio) esegui di nuovo la query sul controllo "comuni". Analogamente per contare gli abitanti.
__________________
Sono GULDO, non Guido! Cioè, certo che guido... Bé, insomma, avete capito ![]() Linux 2.6.26|Debian|Debian@Hwupgrade|Debian Clan|Solo Puffin ti darà forza e grinta a volontà! NERD rank 62|Milla Jovovich|大事な物はいつも形の無い物だけ Sito e Forum sul Giappone|La mia libreria su aNobii |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: May 2004
Città: Como (PDN)
Messaggi: 426
|
La seconda combobox (quella di selezione del paese) dev'essere basata su una query che ti estrapola i valori dalla tua tabella dei paesi dove come criterio metti Provincia= Forms!nomedelform!nomedellaprimacombobox.
Poi vai sulle proprietà della prima combobox (quella di selezione della provincia) e sugli eventi seleziona "dopo aggiornamento". Nel codice corrispondente devi inserire: nomecombobox2=null nomecombobox2.requery me.nomecombobox2=me.nomecombobox2.itemdata(0)
__________________
Qualcuno qui dentro ritiene di essere l'illuminato, di avere la saggezza e che gli altri siano un branco di poveri idioti. Per questo se non è in grado di argomentare seriamente delle risposte, se non la pensi come lui o se provoca e gli rispondi fugge dal thread e ti mette in ignore list |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Nov 2004
Città: Camelot
Messaggi: 691
|
innanzi tutto grazie, però sono MOLTO imbranato e non ho capito molto..
Potreste spiegramelo un po' + in "italiano"?
__________________
Ho concluso affari con: thefire1960 - murakami - dr.gazza - teo ssj - Mr.X - Gangerik - dreamtommino - Flipper - Djmarcograndi - thejudgeTnT - CubeDs |
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: May 2004
Città: Como (PDN)
Messaggi: 426
|
Nel tuo database crei una tabella in cui metti l'elenco delle provincie ed un'altra in cui metti 2 campi: NomeDelPaese-Provincia (il secondo ovviamente collegato alla tabella Provincie)
Poi nella maschera di access (che chiameremo "Maschera1") crei una combobox (attraverso la creazione guidata) in cui fai selezionare come valore una delle provincie dall'elenco preso dalla tabella. Chiama questa combobox per esempio "cmbProvincia". Poi crei, sempre attraverso la creazione guidata, una seconda combobox "cmbPaese": la query che sta alla base di questa va a prendere i valori NomeDelPaese dalla tabella che avevi creato: devi mettere come criterio, sotto la colonna "provincia" -> Forms!Maschera1!cmbProvincia, in modo che selezioni solo i paesi della provincia selezionata nell'altra combobox. Fatto questo, seleziona col tasto destro la combobox cmbProvincia, vai su proprietà->eventi->dopo aggiornamento->codice e nel codice metti queste tre righe: cmbPaese=null cmbPaese.requery me.cmbPaese=me.cmbPaese.itemdata(0) in modo che ogni volta che cambi la provincia selezionata, si ricalcoli i paesi corrispondenti che ti appariranno nel cobobox
__________________
Qualcuno qui dentro ritiene di essere l'illuminato, di avere la saggezza e che gli altri siano un branco di poveri idioti. Per questo se non è in grado di argomentare seriamente delle risposte, se non la pensi come lui o se provoca e gli rispondi fugge dal thread e ti mette in ignore list |
![]() |
![]() |
![]() |
#6 |
Junior Member
Iscritto dal: Apr 2003
Città: Udine
Messaggi: 25
|
Molto utile questo 3d, é un po di tempo che cercavo di fare una cosa simile con Access!
Ho seguito passo passo (spero) le vostre indicazioni, in piu ho provato a cambiare valori e smanettare un po ma non riesco a far apparire nel secondo Combo i valori che mi interessano. Ho creato tre tabelle: tab1= [id],[classe1] tab2=[id],[classe1],[classe2] tab3=[id],[uno] (nel campo [uno] il combo2 deve scrivere il valore che seleziono dalla lista). nella query ho messo in relazione [tab1][classe1]=[tab2][classe1],ho messo due field: tab2.classe2 e tab1.classe1(non visualizzato), il criterio nel secondo field é "[Forms]![Form1]![Combo0]". Nella maschera Form1 ci sono i due combo (combo0 e Combo2). nel primo ho messo il seguente codice: Private Sub Combo0_AfterUpdate() Combo2 = Null Combo2.Requery Me.Combo2 = Me.Combo2.ItemData(0) End Sub Mi sembra che sia tutto a posto. Infatti se apro solo la query mi Access mi chiede il valore del parametro "Forms!Form1!Combo0" e quindi visualizza la colonna con i valori giusti, ma purtroppo non lo fa nel Form. É piu di una settimana che provo a cambiare impostazioni, valori ecc... ma nisba! ![]() ho messo il db in allegato, se potete dargli un'occhiata, non vorrei che ci sia qualche imp sbagliata. Grazie in anticipo |
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Nov 2002
Città: Morio Cho
Messaggi: 2592
|
La query non è giusta, ma quasi
![]() Per farla funzionare, come criterio devi usare [Forms]![Form1]![Combo0].text invece di [Forms]![Form1]![Combo0] Il motivo è che una combo box ha due proprietà: value e text, che hanno significati diversi. text è quello visualizzato, ma value può essere diverso, vedilo come una sorta di indice. Quello di default è value, non text; quindi la query guardava value = 1 (invece di text = Sport) e giustamente non lo trovava nella tabella1. In effetti, il tuo db come lo stai strutturando non è il massimo; dovresti studiare un pochino il modello relazionale, se vuoi, per fare le cose come si deve... bye
__________________
Sono GULDO, non Guido! Cioè, certo che guido... Bé, insomma, avete capito ![]() Linux 2.6.26|Debian|Debian@Hwupgrade|Debian Clan|Solo Puffin ti darà forza e grinta a volontà! NERD rank 62|Milla Jovovich|大事な物はいつも形の無い物だけ Sito e Forum sul Giappone|La mia libreria su aNobii |
![]() |
![]() |
![]() |
#8 | |
Junior Member
Iscritto dal: Apr 2003
Città: Udine
Messaggi: 25
|
Grazie mille!
![]() Non so perche ma all'inizio access mi dava un errore sul me.combo= me.combo.item... Ho chiuso il db e riaperto ed ora non lo da piu! ![]() Quote:
![]() Il prossimo mese studiero il modello relazionale. Ed ora Excel! (importare i dati dal Db e fare i grafici) Bye |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 18:38.