Newsgroup: it.comp.appl.access
Titolo: trasformare una query in istruzione su una maschera (riprendo un post precedente purtroppo senza esito)

buongiorno,
nonostante ripetuti tentativi non riesco a chiudere questo post se non con il Vs. prezioso aiuto.
 
Sono su una maschera scollegata, posizionato sul record indicato dal campo "Codex" e devo aggiornare nel campo "Status" il record "ID"(corrispondente a Codex) della tabella "tbl_Facility_Edifici".
 
La combo "comboStatus" della mia maschera, mi aggiorna con successo la casella di testo "Status".
 
 Se dopo l'aggiornamento della combo, con un pulsante lancio la query "qry_AggiornaStatus" con questo codice:
 
UPDATE tbl_Facility_Edifici SET tbl_Facility_Edifici.Status = [forms]![frm_Strutture]![ComboStatus]
 WHERE (((tbl_Facility_Edifici.ID)=[forms]![frm_Strutture]![Codex])); 
 
la query di aggiornamento mi dice (A) che aggiornerà i dati in tabella e (B) che modificherà un record, dopodichè mi aggiorna regolarmente la tabella, ma certo non è bello...
 
Vorrei poter sostituire questo codice nela mia combo, su uscita o altro evento ma non ci riesco.
Qualcuno può gentilmente darmi un'occhiata/un suggerimento o un aiuto ?
 
grazie infinite per l'interesse.

Quale sarebbe il problema...? Il MESSAGGIO del SISTEMA....?
 
Dipende da come lanci la query...!
 
Puoi impostare i WARNINGS a FALSE, esegui e poi ripristini.
Puoi usare EXECUTE che delega il Driver DAO a far eseguire la Query a JET, escludendo di fatto il controllo del sistema...
 
Siccome tu avrai usato ipotizzo OPENQUERY è ovvio che ci siano i messaggi...
 
Mia visione:
Dim strSQL As String
strSQL="UPDATE tbl_Facility_Edifici SET tbl_Facility_Edifici.Status = " & Me![ComboStatus] & " WHERE ID=" & Me![Codex]
DbEngine(0)(0).Execute strSQL
 
Ora se i controlli sono Fuori FORM allora usa la sintassi estesa:
 
[forms]![frm_Strutture]![ComboStatus] 
al posto di:
Me![ComboStatus]
 
Boh....
 
@Alex

Alex carissimo,
scusami se scrivo cavolate ma non padroneggio il codice così bene...
Per scrivere la query ho creato una query di aggiornamento e ne ho copiato il codice sql ma non so come eliminarne i messaggi.
Vorrei che dopo l'aggiornamento della combo l'aggiornamento in tabella fosse immediato e trasparente.
Scusami, non c'è nessuna polemica ma solo consapevolezza e voglia di capire...
grazie infinite ciao
M

Se nella maschera, all'evento aggiornamento della combo, scrivo:
 
Private Sub ComboStatus_AfterUpdate()
'dopo scelta ComboStatus aggiorna Status
Me.Status = Me.ComboStatus
'aggiorna query di aggiornamento Status in tabella
Dim stDocName As String
stDocName = "qry_AggiornaStatus"
Me.Requery
End Sub
---> non funziona
 
se con la procedura facilitata costruisco un pulsante di comando macro collegato alla query "qry_AggiornaStatus"
---> funziona regolarmente.
 
La macro viene incorporata nel pulsante e non ne posso carpire il comando.
Ho risolto per quanto riguarda i messaggi di esecuzione ma qui non riesco a capire come aggirare il problema.
 
grazie a tutti quanti hanno avuto la pazienza di seguirmi.


Scusami, ma questa linea
 
stDocName = "qry_AggiornaStatus"
 
assegna ad una variabile il nome della query (una stringa)
 
La devi anche eseguire....
 
docmd.openquery "qry_AggiornaStatus", acnormal, acedit
 
oppure, se hai la stringa sql
 
dim Dbs as database
set dbs=currentdatabase
 
dbx.execute "stringa SQL", dbfailonerror+dbseechange
 
altrimenti non funziona no!

 altrimenti non funziona no!
 
 
sono un imbecille !!!! 
cosi fa anche rima con grazie mille !!!
ciao grazie
 
:-)
 

Io credo più facilmente che tu sia stato solo frettoloso... ;-)
 
Ciao
@Alex