Newsgroup: it.comp.appl.access
Titolo: Istruzione SQL e variabile

Devo popolare la Tabella TaNotaSpese con i dati provenienti dalla
Tabella TaFatMacciotta  e Tabella TaSpe .
Procedo in questo modo:
1)	Azzero la Tabella  TaNotaSpese
2)	Accodo alla Tabella TaNotaSpese  i record provenienti dalla Tabella
TaFatMacciotta  e Tabella TaSpe in base ad una variabile.
Trascrivo il codice che uso:
Private Sub Comando0_Click()
'=======================
    DoCmd.SetWarnings False
    ' Azzera TaNotaSpese
    DoCmd.RunSQL "DELETE TaNotaSpese.Con, TaNotaSpese.DTIscrReg,
TaNotaSpese.NumProgAnn, TaNotaSpese.RNRNum, TaNotaSpese.RNRMod,
TaNotaSpese.AnnoRis, TaNotaSpese.RRis, TaNotaSpese.Cognome,
TaNotaSpese.Totale FROM TaNotaSpese WHERE (((TaNotaSpese.Con) Is Not
Null));", -1
 
 
    ' Accoda TaFatMacciotta a TaNotaSpese
 
 
 
 
 
                                'DoCmd.OpenForm "SchedaRICERCHEFat",
acNormal, "SELECT TaFat.* FROM TaFat WHERE
(((TaFat.DTInoltroContabile) Is Not Null)) ORDER BY
TaFat.RegSpeseData, TaFat.RegSpeseNumero;", "[RNR] Like """ &
NumeroRNR & "*""", acEdit, acNormal
DoCmd.RunSQL "INSERT INTO TaNotaSpese ( Con, DTIscrReg, NumProgAnn,
RNRNum, RNRMod, AnnoRis, RRis, Cognome, Totale ) SELECT
TaFatMacciotta.Con, TaFatMacciotta.DTIscrReg,
TaFatMacciotta.NumProgAnn, TaFatMacciotta.RNRNum,
TaFatMacciotta.RNRMod, TaFatMacciotta.AnnoRis, TaFatMacciotta.RRis,
TaFatMacciotta.Cognome, TaFatMacciotta.Totale FROM TaFatMacciotta
WHERE (((TaFatMacciotta.RNRNum) Like [InserireNumeroDiRNR]));", -1
  ' Accoda TaSpe a TaNotaSpese
DoCmd.RunSQL "INSERT INTO TaNotaSpese ( Con, DTIscrReg, NumProgAnn,
RNRNum, RNRMod, Cognome, Totale ) SELECT TaSpe.Con, TaSpe.DTIscrReg,
TaSpe.NumProgAnn, TaSpe.RNRNum, TaSpe.RNRMod, TaSpe.Cognome,
TaSpe.Totale FROM TaSpe WHERE (((TaSpe.RNRNum) Like
[InserireNumeroDiRNR]));", -1
End Sub
Per evitare di fornire due volte la variabile nella finestra di
dialogo (….InserireNumeroDiRNR)
Vorrei procedere come segue:
Private Sub Comando0_Click()
Dim NumeroRNR As String
NumeroRNR = InputBox("Scrivi il Numero di RNR")
If NumeroRNR <> "" Then
End If
Ma non so inserire le righe codice che seguono, cioè non so come
modificare
…….
DoCmd.RunSQL "INSERT INTO TaNotaSpese ( Con, DTIscrReg, NumProgAnn,
RNRNum, RNRMod, AnnoRis, RRis, Cognome, Totale ) SELECT
TaFatMacciotta.Con, TaFatMacciotta.DTIscrReg,
TaFatMacciotta.NumProgAnn, TaFatMacciotta.RNRNum,
TaFatMacciotta.RNRMod, TaFatMacciotta.AnnoRis, TaFatMacciotta.RRis,
TaFatMacciotta.Cognome, TaFatMacciotta.Totale FROM TaFatMacciotta
WHERE (((TaFatMacciotta.RNRNum) Like [InserireNumeroDiRNR]));", -1
Ecc… 
Mi date una mano?
Grazie.

 Grazie.
ciao Fede,
Private Sub Comando0_Click()
Dim NumeroRNR As String
Dim sqlstr as string
NumeroRNR = InputBox("Scrivi il Numero di RNR")
If NumeroRNR <> "" Then
    sqlstr = "INSERT INTO TaNotaSpese ( Con, DTIscrReg, NumProgAnn,
             RNRNum, RNRMod, AnnoRis, RRis, Cognome, Totale ) SELECT
            TaFatMacciotta.Con, TaFatMacciotta.DTIscrReg,
             TaFatMacciotta.NumProgAnn, TaFatMacciotta.RNRNum,
            TaFatMacciotta.RNRMod, TaFatMacciotta.AnnoRis,
TaFatMacciotta.RRis,
            TaFatMacciotta.Cognome, TaFatMacciotta.Totale FROM
TaFatMacciotta
            WHERE (((TaFatMacciotta.RNRNum) Like " &  chr(34) &  NumeroRNR &
chr(34)
!! Attenzione se il campo RNRNum è Numerico invece di Like usa   =   e togli
& Chr(34)
End If
DoCmd.RunSQL  sqlstr, -1
Ciao
Cinzia

...

..... e brava la Cinzia !!!
Ti ringrazio.
Federico