Newsgroup: it.comp.appl.access
Titolo: Scrivere dati in tabella via codice

Salve a tutti
volevo sapere quale è il codice per scrivere dati in tabella.
Vorrei cioè evitare l'associazione dei campi di una maschera ad una
tabella sottosctante , e invece andare a scrivere i record
direttamente in tabella via codice VBA.
Per favore qualcuno mi può aiutare ?
grazie

deve...@aruba.it
 ha scritto:

1) chi te lo fa fare!
2)
dim rs as variant
set rs = currentdb.openrecordset("tab")
2a) inserimento
	rs.addnew
    	rs!Campo= me!controllo
	rs.update
oppure
  la classica insert (spl)
2b) Aggiornamento
rs findfirst "chiave=" & valore
se trovato (not Nomatch)
	rs.edit
    	rs!Campo= me!controllo
	rs.update
oppure
la classica update (sql)
2c) eliminazione
	rs findfirst "chiave=" & valore
	se trovato (not Nomatch)
	rs.delete
oppure
la classica delete (sql)
quando: immagino sul click di un pulsante
Nota: Riimmagino che usi DAO. Se e' una form con inserimenti e/o 
variazioni e/o cancellazioni multiple conviene aprire il recordset sulla 
open della form e chiuderlo sull'unload
3) chi te lo fa fare! esiste il dirty e l'undo
--
ac

developer@aruba,it  ha scritto:

Adesso mi sasserete.......e se invece di una tabella fai una SELECT SQL e imponi me.recordsetsource=TuoSQL? Praticamente lavori disconnesso e ti eviti una valanga di problemi nella multiutenza....concorrenza nell'apertura della form.......nell'update e nelle cancellazioni......e via così......
-- 
Questo articolo e` stato inviato dal sito web 
http://www.nonsolonews.it

Fair8 ha usato la sua tastiera per scrivere :

personalmente odio le maschere associate :)
bisogna stare attenti alla rotellina del mouse..al salvataggio 
automatico..poi se passi ad una subform ti salva il record della form 
madre...
preferisco un
rs = currentdb.openrecordset(SQL) e poi
me.miatextbox = rs("nomecampo")
-- 
IgnazioC

 me.miatextbox = rs("nomecampo")
Ognuno ha diritto di eleggere tempi e modo della propria distruzione 
(cit R.H. Heinlein)
--
ac

Fair87 ha scritto:

Uhmmm..... cosa cambia oltre il fatto che non definisci il tuo rs 
poiche' usi quello messo a disposizione dal form? A occhio sempre 
"spostamenti" dal form  al recordset devi fare.Tra l'altro perche' 
dovrei fare una select? Non e' sufficiente imputare la tabella (o query) 
al recordsource? Questo se ho capito la questione. Inoltre non vedo come 
cio' possa evitare i problemi da te citati, sempre che esistano, a meno 
che non usi un unico FE e magari sotto terminal server. Dico sempre che 
esistano perche', al momento, non mi sembra di avere  mai avuto "guai" 
di alcun tipo.
--
ac

Alessandro Cara ha scritto:

Ciao Alessandro, come sempre colpa mia che spiego male......la SELECT stà per una query via codice, non memorizzata in ACCESS. Praticamente è una maschera dissociata, che io uso sempre quando devo fare azioni non in sola lettura (tipo appunto inserimenti, cancellazioni e via così). Come già postato in questo NG ho sempre avuto problemi di 'concorrenza' utilizzando il mio archivio (mdb) in multiutenza (BE+FE nessun terminal service). In questa maniera, oppure scrivendo una tabella locale e impostando la source sulla tabella x risultati molto 'pesanti', sono riuscito (almeno all'apparenza) a avviare tali problemi. X quanto riguarda le modifiche e le cancellazioni, ok che c'è undo e dirty, ma se lavoro sul record diretto mi espongo a bloccaggi di Access e possibili 'sporcature' che se lavoro in form 'dissociate' mi evito...anche il controllo dell'inserimento mi risulta + facile e sicuro......ovviamente è tutto IMO. Qualunque considerazione è sempre beneaccetta
Ciao e AUGURI!!!!!!!!!!!!!!


Sto scrivendo piccolo codice per scrivere dati in tabella,di una
textbox di una maschera che viene aggiornata automaticamente :
Sull'evento onTimer
DoCmd.SetWarnings (False)
DoCmd.RunSQL "INSERT INTO nome_tabella(nome_campo) VALUES('" _
& me.miaLabel.caption & "')"
DoCmd.SetWarnings (True)
Se volessi scrivere su più colonne(campi) dello stesso record dati di
più textbox della stessa maschera , quale sarebbe la sintassi esatta ?
Grazie a tutti per l'aiuto


DoCmd.RunSQL _
"INSERT INTO nome_tabella(campo1, campo2, campo3)" & _
" VALUES('" & Me!Label1.caption & "', '" & Me!Label2.caption & "', '" & _
Me!Label3.caption & "')"
-- 
HTH
Karl
*********
Access FAQ: 
www.donkarl.com/it