Newsgroup: it.comp.lang.visual-basic
Titolo: Query inserimento access con ciclo For

Devo inserire in una tabella i dati estratti da una matrice. Metto la
matrice su un ciclo for per estrarre e faccio l'inserimento con
l'EXECUTE, passando i parametri alla query che utilizzo...risultato:
inserisce nella tabella un solo record, sembra che esegua l'execute una
sola volta, anche se i dati, l'ho testato, vengono estratti
correttamente. Posto il codice usato:
Dim i As Integer
i = 1
For i = 1 To contatore - 1 Step 1
'passo i parametri alla query, aintCompon è la matrice
    righeM_RMPI.Parameters("p_idMovimento") = idMov
    righeM_RMPI.Parameters("p_articolo") = aintCompon(contatore, 1)
    righeM_RMPI.Parameters("p_descrizione") = "Odp " & NrOrdProd.Value
    righeM_RMPI.Parameters("p_unMis") = "PZ"
    righeM_RMPI.Parameters("p_quantita") = aintCompon(contatore, 3)
    righeM_RMPI.Parameters("p_operatore") = operatore
    righeM_RMPI.Parameters("p_idOrdProd") = IDOrdProd.Value
    righeM_RMPI.Parameters("p_nrOrdProd") = NrOrdProd.Value
    righeM_RMPI.Parameters("p_riga") = Riga + 1
 
 
   righeM_RMPI.Execute
next i

 next i
A parte che non capisco cosa sia righeM_RMPI, ma l'indice i non lo 
utilizzi mai.
Sei sicuro di voler inserire Contatore-1 record tutti identici?
Ciao
Alberto
-- 
A questo punto hanno trovato un muro,
un muro duro, molto molto duro,
che siamo noi.

righeM_RMPI è la variabile della query creata sul mio database, per
quanto riguarda la i avevo copiato il codice sbagliato
Set righeM_RMPI = CurrentDb.QueryDefs("righeM_RMPI")
Dim i As Integer
i = 1
For i = 1 To contOne - 1 Step 1
'inserimento righe del movimento
    righeM_RMPI.Parameters("p_idMovimento") = idMov
    righeM_RMPI.Parameters("p_articolo") = aintCompon(i, 1)
    righeM_RMPI.Parameters("p_descrizione") = "Odp " & NrOrdProd.Value
    righeM_RMPI.Parameters("p_unMis") = "PZ"
    righeM_RMPI.Parameters("p_quantita") = aintCompon(i, 3)
    righeM_RMPI.Parameters("p_operatore") = operatore
    righeM_RMPI.Parameters("p_idOrdProd") = IDOrdProd.Value
    righeM_RMPI.Parameters("p_nrOrdProd") = NrOrdProd.Value
    righeM_RMPI.Parameters("p_riga") = Riga + 1
    MsgBox "Inserito movimento " & i & " articolo " & aintCompon(i, 1)
 
   righeM_RMPI.Execute
 
Next i

Questa è la query:
INSERT INTO dbo_MovMagR ( DtaReg, Articolo, MatrInt, MatrEst, Variante,
Descri, Reparto, UnMis, Quantita, QtaAcc1, QtaAcc2, QtaAcc3, ValUnit,
Sconto1, Sconto2, ScontoFormula, ImpSconto, ImpRiga, IDOrdine,
RigaOrdine, IDBolla, RigaBolla, QtaAcc4, Lotto, Commessa, Centro,
CntCoAn, IDOrdineProd, NrOrdineProd, Fase, Alternativa,
FaseAlternativa, RigaListaMat, ArchivioDocumenti, ArchivioOrdini,
IDMovMag, Riga, RifRigaEsterna, MovimentoIncerto )
SELECT date(), [p_articolo], '', '', '', [p_descrizione], '',
[p_unMis], [p_quantita], 0, 0, 0, 0, 0, 0, '', 0, 0, 0, 0, 0, 0, 0, '',
'', [p_operatore], '', [p_idOrdProd], [p_nrOrdProd], 0, '', 0, 0,
3801088, 3801088, [p_idMovimento], [p_riga], 0, 0;

Utilizzando lo stesso codice e facendo una query di aggiornamento
funziona tutto alla perfezione. Il problema è solo con la query di
inserimento.

la tabella su cui devo fare l'inserimento è una tabella collegata di
SQL Server. Facendo una prova su una tabella di Access tutto funziona.
Come posso fare a risolvere il problema? da cosa dipende?
Grazie, ciao

risolto da solo il problema:
praticamente sulla colonna riga della tabella su sql server è
impostata una chiave; la mia procedura prevedeva di aggiornare il campo
riga, ma in realtà non lo faceva: Riga + 1 infatti faceva sempre 0 + 1
e dava sempre uno senza mai aggiornare la variabile Riga che
inizialmente avevo impostato a 0.
Incredibile, ci ho perso due giorni dietro a sta roba...