Newsgroup: it.comp.appl.access
Titolo: Errore "Too few parameters. Excepted x"

In Access 97:
vorre utilizzare il metodo Execute di un oggetto Database per eseguire una
query di accodamento.
La query deve accodare un singolo record, quindi la sintassi dovrebbe
essere:
INSERT INTO tabella (campo 1, campo 2, ...) VALUES (valore 1, valore 2, ...)
Premesse:
- la tabella ha 18 campi, ma il primo č l'ID di tipo Contatore e l'ho omesso
(come spero di aver appreso dall'help), quindi ne risultano 17
- i nomi dei campi che contengono
- valore 1, valore 2, ... sono nomi di variabili preassegnate
- nella chiamata a Execute ho abilitato dbFailOnError
Risultato:
ottengo il fatidico errore "Too few parameters. Excepted 17"
Ho provato a utilizzare la query con soli due campi, ma l'errore si
ripresenta.
Qualcuno sa darmi qualche indicazione?
Grazie in anticipo.
Broderick

 Broderick
prova a postare il testo esatto della query, e le specifiche del tipo dato dei
campi, se sono testo,  valore deve essere 'valore', se è data valore deve essere
#data# ecc.
Saluti
Paolo

ripresenta.
è expcted, non excepted.  credo che dipenda o dal nome sbagliato di un
campo nell'elenco tra parentesi o nel tipo dati sbagliato che gli
passi.  o magari qualche campo non accetta valori null o empty e tu
glieli passi?
il numero dell'errore e il numero dei campi è una coincidenza.

Ragazzi ... sto impazzendo !!! Se non mi date una mano è la volta buona che
cambio sport.
L'errore prodotto è quello citato in oggetto. Si tratta di una stringa SQL
di accodamento di un singolo record utilizzata con il metodo Execute di un
oggetto Database.
Io provo a postare il codice e una cattura di esempio dell'output prodotto,
la tabella in oggetto si chiama Fatture (premetto che tutti i campi
consentono lunghezza zero e che il primo campo della tabella è la chiave
primaria IDFattura, di tipo contatore, che da quello che ho capito dalla
documentazione va omesso nella query SQL):
CODICE:
Set dbs = CurrentDb
stringaSQL = "INSERT INTO Fatture (Numero, Data, [Fatturare a], Indirizzo,
Città, Paese, PIVA, [Codice Fiscale], [Tipo di fattura], Riferimento,
Valuta, Prestazione, Imponibile, [Totale lordo], [Importi non tassabili],
[Tipo valori non tassabili], [Importo valori non tassabili]) VALUES (" &
NumeroSQL & ", " & DataSQL & ", '" & Fatturare_aSQL & "', '" & IndirizzoSQL
& "', '" & CittàSQL & "', '" & PaeseSQL & "', '" & PIVASQL & "', '" &
Codice_FiscaleSQL & "', '" & Tipo_di_fatturaSQL & "', '" & RiferimentoSQL &
"', '" & ValutaSQL & "', '" & PrestazioneSQL & "', " & ImponibileSQL & ", "
& Totale_lordoSQL & ", " & Importi_non_tassabiliSQL & ", '" &
Tipo_valori_non_tassabiliSQL & "', " & Importo_valori_non_tassabiliSQL &
");"
dbs.Execute stringaSQL, dbFailOnError
OUTPUT ESEMPIO (contenuto della variabile stringaSQL):
INSERT INTO Fatture (Numero, Data, [Fatturare a], Indirizzo, Città, Paese,
PIVA, [Codice Fiscale], [Tipo di fattura], Riferimento, Valuta, Prestazione,
Imponibile, [Totale lordo], [Importi non tassabili], [Tipo valori non
tassabili], [Importo valori non tassabili])
VALUES (6, 6, 11/08/00, 'Rossi S.p.A.', 'Via del PO, 16 - Napoli', 'Napoli',
'Italia', '', 'GLCBRT45H76G777Y', 'Impresa', 'Buono d'ordine 100', 'L.',
'prova pulsante emetti', 10000, 12000, Falso, '', 0);
Ovviamente, se esistono altri metodi per accodare un record a una tabella
diversi da INSERT INTO partendo dal codice di una maschera, sono pronto a
cambiare il codice.
Grazie in anticipo a chi vorrà dedicarmi qualche minuto.
Broderick


Ho provato la tua stringa su una tabella  costruita con quasi tutti i campi
testo ad esclusione di Numero(numerico), Data(Data),Imponibile e [Totale
lordo] (numerico),importi non tassabili(booleano) .
1.Le date vanno messe tra # in formato mm/dd/yyyy ( quindi nella strsql va
scritto #' & FORMAT (DATASql,"mm/dd/yyyy") & '#
2. 'Buono d'ordine' non va bene perchè devi raddoppiare l'apostofo (cioè
'Buono d''ordine'). Qui devi scrivere una funzione ( non so se esista sul
sito comune) che raddoppi tutti gli apostrofi dentro i valori che li
contengono.
Comunque quando una stringa non va io personalmente costruisco un oggetto
query che abbia l'SQL definito nella stringa, poi passo in modalità
struttura per vedere se tutto è posto e quindi la eseguo. Ti assicuro che
spesso è più semplice capire perchè non funziona.
Ciao Nicola
PS Hai messo due volte 6 all'inzio ma credo che sia un errore nella
scrittura del messaggio.