Newsgroup: it.comp.appl.access
Titolo: Query di accodamento - HELP

Ho una query di accodamento che tra le tante cose dovrebbe incrementarmi un
campo numerico (+1 per ogni record)
nella query ho inserito (da struttura)  Espr2: [maxDiID_Movim]+1
mi esce msg che mi avverte che sto violando dei campi nulli, poi in tabella
ricevente mi ritrovo solo un record accodato.
Grazie Paolo

 ha scritto nel messaggio
news:4057191a$1...@news.telnetwork.it...

Ciao Paolo,
io molto + semplicemente ho previsto un campo contatore in tabella che si
incrementa ogni volta che accodo.
non so se ho ben capito, ma potrebbe andar bene?
ciao.

Ringrazio per la risposta, il problema è che devo accodare ad una tabella
contenente un campo numerico con chiave primaria.
La tabella è una tabella collegata ad un database di un programma di
contabilità, quindi non posso variarne la tipologia dei campi.
In questa tabella devo accodare dei record rsipettando però questo
stramaledetto campo che vuole solo dati in progressione.
Quindi io pensavo a questo:
- mi creo una query che mi visualizza il dato più alto (max) di questa
tabella (cosi so da dove devo partire a contare) ess 152
- poi creo una tabella di accodamento dicendo "nel campo della tabella di
destinazione inseriscimi per ogni record 152 + 1."
  [maxDiID_Movim]+1 soltanto che per i (esempio) 10 record che devo accodare
mi propone sempre 153 e non la progressione 152, 153, 154, 155 ecc..
Altra domanda (la cosa mi fa impazzire) se creo una tabella con contatore
come faccio ad azzerare il contatore?
Esempio: TABELLA x (con campo contatore)
creo query accodamento (10 record)
il contatore in tabellax arriva fino a 10
poi lancio query di eliminazione (che mi elimina record in Tabellax)
lancio nuovamente query di accodamento (il contatore mi parte da 11, invece
io vorrei farlo partire nuovamente da 1)
Grazie

 io vorrei farlo partire nuovamente da 1)
Compatta prima il database
Antonio


esiste un comando che posso legare ad un pulsante di una maschera o meglio
ad una macro che mi fa compattare il database
Grazie

Ok non è un gran che bello ma ci sono riuscito.
Nelle impostazioni di access esiste una opzione, compatta database in
uscita.
Poi ho creato una tabella con contatore, accodo record e quindi il campo
contatore mi presenta per ogni record (1, 2, 3, 4, 5 ecc)
In altra query di accodamento ove riporto per ogni record (in uno specifico
campo) ultimo progressivo, creo un campo ove sommo Espr1: [ultimo
progressivo] + [contatore], in tal modo ottengo (se ultimo progressivo ess
70), 71, 72, 73, 74, 75  (70+1, 70 + 2, 70+3, 70+4) ecc.). A sto punto ho
per ogni record sto benedetto campo con i numeri progressivi. Vado ad
accodare alla tabella  collegata con campo numeratore e chiave e tutto
funziona. Al termine, elimino record in tabella con contatore chiudo
databases. All'apertura posso iniziare nuovamente procedura, nella tabella
con contatore parto sempre da 1.
RINGRAZIO TUTTI PER I LORO SUGGERIMENTI
anche se credo che tale soluzione sia un poco roccambolesca, mi sembra
strano che non esiste una formula che mi permetta di creare una query di
accodamento con la possibilità di accodare ad una tabella dei record con
numerazione progressiva ove posso decidere io da che numero iniziare a
contare.

...

Io, in un pulsante, scrivo qualcosa del genere
Private Sub conferma_Click()
     Dim codd As Integer
     codd = DMax("[cod]", "tPersonale") + 1
     DoCmd.RunSQL "INSERT INTO tPersonale VALUES " & codd & _
         ", '" & <campoalfanumerico> & "', " & <camponumerico> & ";"
End Sub
Nell'esempio, scrivo i dati in una tabella tPersonale con tre campi:
un intero chiamato [cod] che funge da chiave univoca;
un alfanumerico;
un numerico.
Come vedi, il campo alfanumerico è delimitato da virgolette semplici.
La stringa potrebbe risultare così:
"INSERT INTO tPersonale VALUES 38, 'Mario Rossi', 300000;"
A voler essere pignoli, se la tabella non avesse record l'istruzione
DMax darebbe errore, per cui  scrivo:
     If IsNull(DLookup("[cod]","<nometabella>") then
          codd = 1
     Else
          codd = DMax("[cod]", "<nometabella>") + 1
     End If
Ciao
Riccardo

Grazie Riccardo