Newsgroup: it.comp.appl.access
Titolo: query di accodamento o istruzione insert to ???

Ho una maschera continua con una combo in intestazione nella quale, digitando un numero di pratica individuo un record, composto da sei campi.
Man mano che scelgo i record , vorrei che andassero a popolare una tabella tramite un pulsante che sull'evento click ha codice:
 
Private Sub Accoda_Click()
'su click accoda il record alla TabellaCheck
 
INSERT INTO TabellaCheck [(Check[, Progr[,Stato[,Status[,DataEM]]]])]
VALUES ("Vero"[,Progr[,Stato[,Status[,DataEM]]]])
End Sub
 
Non so se l'istruzione sia giusta o se preferire una query di accodamento, fatto sta che non funziona e non riconosce nemmeno l'istruzione....
 
n.b.  i campi indicati quali valori sono quelli realivi al record selezionato dalla combo
 
grazie a chi mi vorrà/potrà aiutare.


ma che sono quelle parentesi quadre???
 
la sintassi dell'insert è
INSERT INTO table_name (column1,column2,column3,...)
VALUES (value1,value2,value3,...)
 
dove value possono essere, valori fissi o variabili tipo me.prog 
me.stato   me.dataem
 
leggiti qui magari
http://www.w3schools.com/sql/sql_insert.asp
 
 
ciao
BFS
 
 
 
 
 
 

grazie 1000
provo subito!!!!

purtroppo nulla, non mi riconosce l'istruzione.
vado a buttare il pc dalla finestra , scusami....
 
Il nome tabella esiste è giusto e il codice si blocca proprio li.
Approfitto ancora della tua gentile disponibilità.
 
Per ottenere i sei campi relativi al record individuato dalla combo, da accodare in tabella, devo fare sei caselle di testo che dopo l'aggiornamento della combo me ne restituiscano il valore ?
es.
 
me.progr = me.combo.column(2)
me.stato = me.combo.column(3)
ecc...
 
ciao grazie 1000 + 1000
 

ignazio.pilone laid this down on his screen :

IF:
1 - la tua combo si chiama Combo1
2 - la tabella che vuoi aggiornare già esiste e si chiama T66
3 - i campi della combo sono n e sono ordinati
    (non importa il nome) come gli n di T66
THEN
=====================================================
Private Sub Combo1_AfterUpdate()
Dim RS As Recordset, i As Long
 
Set RS = CurrentDb.OpenRecordset("T66", dbOpenDynaset)
 
RS.AddNew
    For i = 0 To n - 1
        RS(i) = Combo1.Column(i)
    Next
RS.Update
 
End Sub
=====================================================
 
Bruno
 
 

Bruno, ora funziona perfettamente, grazie infinite.
 
Posso porti un ulteriore quesito ?
Uno dei campi è un checkbox (vero;falso)che non posso intercettare prima ma che dopo l'evento della combo, quindi durante la registrazione del record in tabella, dovrei porre uguale a vero.
La domanda è questa:
Se io posiziono questo campo come ultimo degli n campi che trascrivo posso con adeguata istruzione(che non so), porlo a vero ?
il mio codice è questo:
 
Dim RS1 As Recordset, i As Long
Set RS1 = CurrentDb.OpenRecordset("TabellaCheccati", dbOpenDynaset)
RS1.AddNew
    For i = 0 To 9
    RS1(i) = ComboCercaProgr.Column(i)
    Next
RS1.Update
End Sub
 
grazie ancora, davvero tanto.

on 21-11-13, ignazio.pilone supposed :

Se il campo nella tabella si chiama chkBox:
 
 Dim RS1 As Recordset, i As Long
 Set RS1 = CurrentDb.OpenRecordset("TabellaCheccati", dbOpenDynaset)
 RS1.AddNew
     For i = 0 To 9
         RS1(i) = ComboCercaProgr.Column(i)
     Next
     RS1("chkBox") = True  ' naturalmente il campo chkBox sulla
                           ' tabella deve esistere
 RS1.Update
[chkBox] = True  ' se vuoi anche porre a True il
                 ' corrispondente CheckBox della scheda
End Sub
 
 

grazie mille Bruno funziona perfettamente.
 
Unico neo è che l'ultima istruzione, che mi piacerebbe moltissimo ma che non pensavo nemmeno di poter fare, non mi consente di porre a true il valore in tabella, in quanto la combo legge da una query.(forse dico una stupidaggine ?)
 
Dovrei quindi, per il record individuato, andare a scrivere in tabella ponendogli li il campo check = true.
 
Non voglio abusare oltre della tua disponibilità e ti ringrazio comunque molto.
 
 
qui inizia a nevicare...(Torino)
------------------------------------
Non è molto in tema ma è doveroso un pensiero e un abbraccio agli amici sardi.

 tabella, in quanto la combo legge da una query.(forse dico una stupidaggine
Se scrive gli altri deve scrivere anche il [chkBox] della tabella, 
sempre che esista un campo Boolean con tale nome.
 
Bruno
 
 

 Bruno
 
 
Bruno, scusami ma ho tralasciato questo problema per (cercare di...) risolverne altri piu impellenti, non solo di access, e ora mi si ripresenta implacabile.
 
Allora il decimo campo esiste nell'elenco a discesa della mia combo (lo vedo scritto Si/No).
Dopo aggiornamento della combo stessa me lo scrive in tabella.
Non riesco purtroppo a farlo scrivere nella mia corrispondente CheckBox della scheda (ultima riga del codice da te gentilmente suggeritomi e postato in calce).
In tabella il campo è in formato si/no.
Nelle proprietà della query è in formato si/no.
Nella mia form non riesco a dare un formato alla mia casella di spunta e non so più cosa provare.
Mi segnale un errore di recordset non aggiornabile evidenziando appunto l'ultima riga.
riesci a darmi un aiuto ?
 
ciao
grazie
 
 
Dim RS1 As Recordset, i As Long
Set RS1 = CurrentDb.OpenRecordset("TabellaCheccati", dbOpenDynaset)
RS1.AddNew
    For i = 0 To 9
        RS1(i) = ComboCercaProgr.Column(i)
    Next
 RS1("Check") = True  ' naturalmente il campo chkBox sulla tabella deve esistere
 RS1.Update
 Check = True  ' se vuoi anche porre a True il corrispondente CheckBox della scheda

 della query ï¿œ in formato si/no.
Se il CheckBox ï¿œ bounded (cioï¿œ collegato in qualche maniera alla 
tabella) non ï¿œ necessario andarci a scrivere sopra con l'ultima riga 
del codice.
Prova a sostituira detta ultima riga con:
CheckBox.Requery
 
Bruno
 
 

 Bruno
 
grazie per l'attenzione...
ho provato a modificare l'ultima istruzione, non da più errore ma non aggiorna la maschera.
Ho provato a scrivere il check si/no sulla query da cui attinge la combo e non è possibile. Probabilmente il problema sta proprio li.
 
La query ha questo codice:
 
SELECT NumerazioniRoberto.GIMMO AS Gimmo, NumerazioniRoberto.Progr, NumerazioniRoberto.Denominazione, NumerazioniRoberto.DESCRIZIONE, NumerazioniRoberto.IMPORTOBuono, NumerazioniRoberto.Anno, NumerazioniRoberto.Tecnico, QRY_frm_AggiornaDataLimite.stato, NumerazioniRoberto.Status, NumerazioniRoberto.Check
FROM NumerazioniRoberto INNER JOIN QRY_frm_AggiornaDataLimite ON NumerazioniRoberto.Progr = QRY_frm_AggiornaDataLimite.Progr
WHERE (((NumerazioniRoberto.GIMMO)<>0))
WITH OWNERACCESS OPTION;
 
Ho provato a modificare i campi ma non ci riesco. Posso fare in modo di renderla scrivibile o è un mio errore concettuale ?
 
ciao grazie infinite.

 renderla scrivibile o ï¿œ un mio errore concettuale ?
 
Se la query non ï¿œ aggiornabile... bisogna agire su quella.
Io non ho qui le tabelle per poterla sperimantare.
Lavoraci su...
 
Bruno