Newsgroup: it.comp.appl.access
Titolo: query di aggiornamento

salve a tutti, con una **query di aggiornamento** ho la possibilit� di 
inserire in un campo di ogni record un numero progressivo?
 
da query non da maschera
 
grazie per l'eventuale aiuto
 
 
 
 

 grazie per l'eventuale aiuto
 
Si, ma solo se il Numero da assegnare lo ricavi da una Funzione
Esterna.
Poi ci sono 2 Opzioni:
   1) Nella Funzione memorizzi il valore Attuale uscente per usarlo
poi alla successiva ed incrementarlo di 1 (la trovo pessima ma è
VELOCISSIMA se la usi solo 1 volta va bene)...!
   2) Nella Funzione richiedi come parametro il la PK del Record
Corrente, da li apri un RS che punta alla PK recuperando del Previous
il PROGRID, quindi lo incrementi di 1...
 
Questa 2° Funziona sempre... io la preferisco, ma è molto lenta se
eseguita su tutto il DataSet.
 
Versione (1)
Private lngProgr  As Long
Public Function GetProgr() As Long
    lngProgr  = lngProgr  + 1
    GetProgr=lnProgr
End Function
 
UPDATE T1 SET CampoProgr=GetProgr()
 
La Versione 2 va ragionata e costruita in base alla struttura della
tua Tabella, ma non te la propongo...
 
@Alex

 ha scritto nel messaggio 
news:35644043-2fbe-47b0...@e16g2000yqj.googlegroups.com...
 
Poi ci sono 2 Opzioni:
   1) Nella Funzione memorizzi il valore Attuale uscente per usarlo
poi alla successiva ed incrementarlo di 1 (la trovo pessima ma �
VELOCISSIMA se la usi solo 1 volta va bene)...!
 
si � perfetta, nel senso � che devo mettere un numero in sequenza, partendo 
da un numero scritto da qualche parte ovviamente (tabella), su una tabella 
che, quando viene creata ha il campo vuoto...
 
campo1    campo2
A
B
C
D
E
 
diventa se numero di partenza = 64
 
campo1   campo2
A            64
B            65
C            66
D            67
E            68
 
ma come lo eseguo da query di aggiornamento?
 
scusa ma sono un attimino impedito, mi servirebbero proprio i passaggi con 
il cucchiaino :)
 
grazie
 
 
 
 

 ha scritto nel messaggio 
news:35644043-2fbe-47b0...@e16g2000yqj.googlegroups.com...
 
[cut]
 
questa � la query
 
UPDATE PANIERE_BASKET SET PANIERE_BASKET.basket_codice_basket = GetProgr();
 
 
e questa � la funzione:
 
Private lngProgr  As Long
 
Public Function GetProgr() As Long
         lngProgr = lngProgr + 1
         GetProgr = lnProgr
End Function
 
risultato: mi mette sempre lo stesso valore su tutti i record anzich� un 
valore incrementale :(
 
dove sbaglio?
 
 
 
 

 grazie
 
campo1 contiene valori unici ordinati? una PK o un indice che non 
ammetta duplicati?
 
Bruno
 
 

 duplicati?
 
nessun ordinamento il campo uno non ha alcun criterio
io devo fare esattamente la stessa cosa che farei aprendo la tabella e 
mettendo a manina un numero incrementale
 
 
Tipo apro la tabella
 
campo1    campo2
Z
T
A
O
I
 
indipendentemente dalla situazione che trovo
 
devo numerare i record
 
campo1   campo2
Z            1
T            2
A            3
O            4
I              5
 
Tu mi chiedi a che serve? La tabella viene sempre ricreata con il campo2 
vuoto ed ogni volta devo assegnare un numero di basket UNIVOCO ad ogni 
record
a mano, per evitare questo gli dico alla query parti da, che ne so, 50 e 
inserisci  50 nel primo record letto, 51 nel secono, 52 nel terzo e cos� via
tutto qua, ripeto, purch� il campo 2 sia UNIVOCO
 
 
 
 
 
 

 ha scritto nel messaggio 
news:kisg9u$rc$1...@dont-email.me...

dopo di che, questa tabella mi serve solo d'appoggio
 
quindi:
 
la creo con query di creazione sulla base di dati presenti in altre tabelle
 
inserisco questi codici basket
 
e poi la uso come appoggio
 
la volta successiva rifaccio la stessa cosa partendo da altri dati 
ovviamente
 
 
 
 
 
 
 
 
 
 
 

 Tu mi chiedi a che serve?
[...]
 
No, io non ti chiedo a che serve, che non me ne frega un c...
Ti ho chiesto se campo1 ha valori unici ordinati, ovvero - soggiungo - 
se ï¿œ possibile creare nella tabella un campo a valori unici ordinati.
Perchï¿œ senza di ciï¿œ ritengo proprio impossibile attuare il tuo 
desiderio... salvo usare qualche riga di codice VBA.
 
Bruno
 
 

 se � possibile creare nella tabella un campo a valori unici ordinati.
 
si, anzi, *devono* proprio essere valori unici ed ordinati
 
 
 
 

 si, anzi, *devono* proprio essere valori unici ed ordinati
 
Scusa, ho preso lucciole per lanterne...
ï¿œ possibile eseguire l'APPEND ma non l'UPDATE.
 
Bruno
 
 

Bruno Campanini explained on 28-03-13 :

Comunque, la via piï¿œ semplice:
======================
Private Sub Command2_Click()
Dim RS As Recordset, i As Integer
Set RS = CurrentDb.OpenRecordset("T1", dbOpenDynaset)
i = 63
Do Until RS.EOF
    i = i + 1
    RS.Edit
    RS![F2] = i
    RS.Update
    RS.MoveNext
Loop
End Sub
======================
 
Dove T1 ï¿œ la tabella e F2 ï¿œ il tuo campo (campo2)
 
Bruno