|
| HOMEPAGE | INDICE FORUM | REGOLAMENTO | ::. | NEI PREFERITI | .:: | RSS Forum | RSS News | NEWS web | NEWS software | |
| PUBBLICITA' | | | ARTICOLI | WIN XP | VISTA | WIN 7 | REGISTRI | SOFTWARE | MANUALI | RECENSIONI | LINUX | HUMOR | HARDWARE | DOWNLOAD | | | CERCA nel FORUM » | |
![]() |
#1 |
Senior Member
Registrato: 02-08-2003
Loc.: Lamezia Terme
Messaggi: 344
![]() |
Origine record diverse.
Praticamente ho notato che access mi fa associare l'origine record della maschera al più ad una tabella, quindi poi entrambe le text box possono essere associate a campi diversi, ma della stessa tabella che fa da origine record alla maschera che le contiene. Ho pensato a creare due query di accodamento sulle due tabelle, ma il problema è lo stesso perchè access mi fa associare la maschera al più ad una query come origine record?! Come faccio? Grazie in anticipo! ![]() |
![]() |
![]() |
![]() |
#2 |
Senior Member
Registrato: 02-08-2003
Loc.: Lamezia Terme
Messaggi: 344
![]() |
Allora, provo a rispondermi da solo e magari mi dite solo se è giusto o sbagliato:
Se uso del codice vb che esegue due query di azione e ciascuna aggiunge un record alla rispettiva tabella magari con la pressione di un button, non ho bisogno affatto di preoccuparmi dell'origine record della maschera. Aspetto una conferma, grazie. :| |
![]() |
![]() |
![]() |
#3 |
Gold Member
WT Expert
Registrato: 09-01-2002
Loc.: None of your business
Messaggi: 5.505
![]() ![]() ![]() |
Dipende.
I controlli possono essere associati oppure no. Nel caso specifico la textbox associata è utile per aggiornare/visualizzare il contenuto di una cella. |
![]() |
![]() |
![]() |
#4 |
Senior Member
Registrato: 02-08-2003
Loc.: Lamezia Terme
Messaggi: 344
![]() |
Allora, ho semplicemente implementato il codice nei due eventi Enter delle due text box.
Ho eseguito la stringa della query di azione con il metodo Execute sul db corrente per ciascuna text box: ------------- Per Textbox1: ---------------------------------- Private Sub Text1_Enter() Dim db As Database Dim rs As Variant Dim intMax As Integer Set db = CurrentDb() Set rs = db.OpenRecordset("select Tabella1 FROM [Tabella1]") rs.MoveLast intMax = rs.RecordCount db.Execute ("INSERT INTO Tabella1 Campo_ID,Campo2,Campo3,Campo4,Campo5)" & _ "Select " & intDato & ",'" & Text1.Text & "','Campo3',Campo4,Campo5 from Tabella1") End Sub ------------------------- Per Textbox2: --------------------------------- Private Sub Text2_Enter() Dim db As Database Dim rs As Variant Dim intMax As Integer Set db = CurrentDb() Set rs = db.OpenRecordset("select Tabella2 FROM [Tabella2]") rs.MoveLast intMax = rs.RecordCount db.Execute ("INSERT INTO Tabella2 Campo_ID,Campo2,Campo3,Campo4,Campo5)" & _ "Select " & intMax & ",'" & Text2.Text & "','Campo3',Campo4,Campo5 from Tabella2") End Sub --------------------------- Premendo enter dopo avere inserito il dato nella prima text box funziona e aggiunge il record alla Tabella1 e il controllo passa alla Textbox2. Inserendo il dato anche in questa e premendo enter aggiunge un nuovo record, ma in corrispondenza del valore della Textbox2 non compare il dato che è appena stato immesso?! E' incredibile perchè è tutto identico alla prima?! Perchè nella prima funziona tutto e nella seconda no? ![]() Aiutooooo! P.S.Qual'è il tipo di dato dell'oggetto che uso per accedere al recordset ? Ho provato come RecordSet ma mi dice che il tipo non corrisponde e ho dovuto dichiararlo come Variant :| Ultima modifica di Fast-M : 25-10-2004 alle ore 17.35.01 |
![]() |
![]() |
![]() |
#5 |
Senior Member
Registrato: 02-08-2003
Loc.: Lamezia Terme
Messaggi: 344
![]() |
Ho risolto!
Bastava associare il codice all'evento LostFocus. Evidentemente l'evento Enter crea problemi con le tabelle collegate esterne. Il problema dei tipo Variant resta comunque in attesa di chiarimento. ![]() |
![]() |
![]() |
![]() |
#6 | |
Gold Member
WT Expert
Registrato: 09-01-2002
Loc.: None of your business
Messaggi: 5.505
![]() ![]() ![]() |
Sono contento che tu abbia risolto anche se non penso sia qesta
Quota:
Per quanto riguarda il Recordset, il problema è dovuto al fatto che l'oggetto Recordset è lo stesso sia per DAO che per ADO. Sebbene le dichiarazioni siano per DAO: Dim rs As Recordset e per ADO: Dim rs As ADODB.Recordset quando viene eseguito il codice, ACCESS da la precedenza ad ADO. Per evitare questo spiacevole inconveniente hai giustamente dichiarato la variabile di tipo Variant. Tutto funziona ma non è corretto. Devi evitare di creare il riferimento agli ADO ed utilizzare esclusivamente i DAO o viceversa. ![]() |
|
![]() |
![]() |
![]() |
Utenti attualmente attivi che stanno leggendo questa discussione: 1 (0 utenti e 1 ospiti) | |
Strumenti discussione | |
|
|
![]() |
||||
Discussione | Autore discussione | Forum | Risposte | Ultimo messaggio |
[access] Report del record corrente | raff5184 | Office suite | 7 | 05-11-2007 10.22.31 |
[PHP] Modificare un record utilizzando radio button | Downloader | Programmazione | 2 | 31-03-2006 20.17.47 |
Record del mondo di volo senza soste | Gigi75 | Chiacchiere in libertà | 6 | 12-02-2006 22.01.27 |
neoTV v1.0.0.36, Record TV directly to DVD disc | carletto | Segnalazioni Web | 0 | 15-08-2004 19.19.29 |