Newsgroup: it.comp.appl.access
Titolo: scrivere record con dao

Salve,
sto facendo un database in access 2003.
Avrei l'esigenza di creare una maschera con controlli non asssociati,
e da questa aggiungere record a due tabelle diverse. Vorrei utilizzare
ADO ma non ne vengo a capo...
Ho trovato esempi confezionati per acces 97 ma per il 2003 non ne
trovo
Ho navigato in rete ma non riesco a risolvere.
Suppongo che si debba aprire il database e poi le tabelle, vorrei la
sintassi di queste semplici operazioni
Apertura db
Apertura tabelle
scrittura dei campi
chiusura tabelle
chiusura db
Scusate la banalità, ma mi sono impantanato da 15 giorni in questo
problema...
Grazie
Ciao Filippo

 ha scritto nel messaggio 
news:1182764478.1...@p77g2000hsh.googlegroups.com...



Ciao Filippo,
uhm... nel titolo parli di DAO nel testo di ADO sono 2 cose diverse e non so 
più quale vuoi...
Tieni presente comunque che con gli MDB in generale è preferibile usare DAO 
a meno che tu non debba usare sintassi particolari di DDL che da DAO non 
sono supportate ma semplicemente per aggiungere un record DAO basta e 
avanza.. :-)
-- 
Cinzia [Office Access MVP]
_______________________
 
www.riolab.org
---------------------------------------- 

 ha scritto nel messaggio 
news:1182764478.1...@p77g2000hsh.googlegroups.com...



[risposta]
Non sei obbligato ad utilizzare ADO; basta che esegui una query di 
inserimento per entrambe le tabelle:
es.
Dim strSQL as String
strSQL = "Insert Into tabella (" & me!nomeCasellaDitesto & ")"
Currentdb.Execute strSQL
Poi se vuoi studiare ADO basta che leggi gli esempi, nell'help in linea, sui 
metodi:
- AddNew
- Update
- Delete
Link:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dndao/html/daotoado.asp
(risultati ricerca MSDN):
http://search.msdn.microsoft.com/search/Default.aspx?query=ado+dao&brand=msdn&locale=it-it&refinement=00&lang=en-us
Ciao.
-- 
Sergio MAZZA 

 ha scritto nel messaggionews:1182764478.1...@p77g2000hsh.googlegroups.com...

Scusami, volevo dire DAO, quella più recente... cambiano i metodi od i
riferimenti?
grazie Filippo

 Sergio MAZZA
Grazie

 ha scritto nel messaggio 
news:1182769545....@q75g2000hsh.googlegroups.com...

 Scusami, volevo dire DAO, quella più recente... cambiano i metodi od i
riferimenti?
grazie Filippo
Ciao Filippo,
siamo ancora alle informazioni confuse, dunque DAO è il modello più antico 
usato per accedere a tabelle/query in un MDB, da Access 2K (o 97?) è stato 
introdotto ADO che avrebbe dovuto soppiantare DAO, ma la storia è andata 
diversamente ... ADO è ormai non più sviluppato invece DAO è risorto a nuova 
vita...
Per aggiungere un record ad una tabella guardati i seguenti Oggetti DAO: 
Database e Recordset e i seguenti metodi
OpenRecordset
AddNew
Edit
Update
ma tieni presente che se devi aggiungere un solo record probabilmente ill 
modo + veloce è come ha detto Sergio quello di usare una istruzione SQL 
INSERT


 - Mostra testo tra virgolette -
Ok, ti ringrazio per i chiarimenti. Avevo già usato una query di
accodamento ma volevo evitare il mesasggio di conferma di accodamento.
Si può evitare (menu strumenti, opzioni ecc....) ma il db è
idistribuito in una rete e ognuno ha impostato access sul pc in modo
diverso.
Grazie Filippo

 [CUT]
Ok, ti ringrazio per i chiarimenti. Avevo già usato una query di
accodamento ma volevo evitare il mesasggio di conferma di accodamento.
Si può evitare (menu strumenti, opzioni ecc....) ma il db è
idistribuito in una rete e ognuno ha impostato access sul pc in modo
diverso.
Per questo dovrebbe bastare:
DoCmd.SetWarnings  false    ''''  prima dell'Insert
CurrentDb.Execute "INSERT ...."
Docmd.SetWarnings true



wrote:

Grazie Cinzia. Suppongo che ci sia la possibilità di controllaer lo
stato corrente, se è false si lascia fare altrimenti lo si imposta, e
poi ripristinarlo all' stato originario, questo perchè ogni utente può
averlo impostato in modo diverso...


wrote:

Dunque, ho usato la INSERT...
Ho creato una query di accodamento in visalizza struttura, l'ho
testata e funziona; con copia incolla trasporto l'istruzione sql nel
codice della form ma, quando la query va in esecuzione mi da un
messaggio di errore, dice che il numero dei parametri è errato.
Se sostituisco le varabili argomento della select (che sono i
controlli della maschera) con delle costanti invece fuziona.
Quindi il problema è nell'interpretazione della stringa sql,
Questa proprio non la capisco...
grazie Filippo

 grazie Filippo
Probabilmente devi adattare leggermente la stringa SQL ad esempio se l'istruzione 
in QB è
INSERT INTO TAB1 (campo1, campo2)
VALUES(Forms!Maschera1!text1, Forms!Maschera1!Text2)
eseguita da VB diventerà
strSQL = "INSERT INTO TAB1 (campo1, campo2)
VALUES(" & Forms!Maschera1!text1 & "," &  Forms!Maschera1!Text2 & ")"
Cinzia [Office Access MVP]
________________________
www.riolab.org
________________________

 - Mostra testo tra virgolette -
Ok, grazie alla tua indicazione ho risolto:
occorre portare fuori dalle virgolete della stringa la variabile e
concatenarla con la & .
Grazie Filippo