Newsgroup: it.comp.appl.access
Titolo: Contrassegnare il campo di un record con i valori massimo e minimo di un dato intervallo.

In una tabella ho una serie di record che hanno un campo
chiamato cap che contiene appunto un cap.
Questi record si trovano ordinati in base al campo cap in senso
Crescente.Tra questi record ci sono vari intervalli(sempre ordinati in
senso crescente dal cap)
contrassegnati in un altro campo da asterischi che stabiliscono
l&#8217;intervallo.
Per fare un esempio la tabella si presenta in questo modo:
 A       b        c        d
 ---     00125    ---     ---
----     00128    ----     ---
-----    00129    -----    ---
-----    00130    ******   ---- (Primo intervallo)
-----    00135     -----    ----
-----    00138     -----    ----
------   00139     ******    --- (secondo intervallo) e cosě via. 
Come č possibile scrivere in un campo del record che ha il campo
con l&#8217;asterichi (quelli che delimitano l&#8217;intervallo):
Dal cap &#8220;il cap minimo di quel dato intervallo&#8221; al cap
&#8220;il cap massimo
di quel dato intervallo&#8221; es.
A       b        c        d
 ---     00125    ---     ---
----     00128    ----     ---
-----    00129    -----    ---
-----    00130    ******   Dal cap 00125 al cap 00130
-----    00135     -----    ----
-----    00138     -----    ----
------   00139     ******   Dal cap 00135 al cap 00139
Un Saluto a tutti.
Davide

 ha scritto nel messaggio
news:e2ac43b1.04050...@posting.google.com...

Penso che si possa fare solo via codice, aprendo il recordset, testando i
valori dei vari campi e scrivendo l'altro campo di conseguenza
Antonio

Davide


Ti spiego l'algoritmo in maniera discorsiva
Apri un recordset sulla tabella ordinata per cap.
esegui un ciclo sul recordset fino all'EOF
Nel ciclo, con l'uso di variabili d'appoggio ti salvi il primo valore di cap
dopo gli *. Quindi continui a scorrere finchč non trovi altri *. A quel
punto con edit e update scrivi nel campo note la stringa col valore salvato
e quello del record corrente. Quindi continui, salvi il successivo valore e
iteri fino alla fine.
Antonio

...

Ciao Antonio
Mi potresti spiegare con qualche esempio questa parte del discorso,
che dice: "Nel ciclo, con l'uso di variabili d'appoggio ti salvi il
primo valore di cap dopo gli *. Quindi continui a scorrere finchč non
trovi altri *.A quel punto con edit e update scrivi nel campo note la
stringa col valore salvato e quello del record corrente. Quindi
continui, salvi il successivo valore e iteri fino alla fine.
Un saluto.
Davide

 Davide
Riformulo meglio la domanda:
Quello che non mi riesce é salvare il primo valore di cap dopo gli *
in una variabile d'appoggio.Quale è l'impostazione?
Un ringraziamento e un saluto
Davide

 > > > > > Come è possibile scrivere in un campo del record che ha il campo

dim app as string
app = rst.fields("cap")
dove rst è la variabile recordset che stai usando
Antonio

...

Ciao Antonio
Con la routine che segue sono riuscito a stabilire il valore 
massimo dei vari intervalli,prendendo come riferimento il campo
che presenta gli asterischi,ma come si può individuare il valore 
minimo dei vari intervalli dopo il campo che contiene gli asterischi(con 
cui ho potuto individuare il cap per determinare il valore massimo degli
intervalli)??Invece il valore minimo del primo intervallo che non ha nessun
punto di riferimento???
Private Sub Comando10_Click()
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim X As String
Dim y As String
Set db = CurrentDb
Set rs = db.OpenRecordset("tblrighe")
rs.MoveFirst
 rs.MoveFirst
    Do
        If rs!des1 = "****************************************" Then
        X = " AL CAP   " & rs!CAP
             rs.Edit
             rs!DES2 = X
             rs.Update
              y = "DAL CAP  " & rs.Fields("cap")
             rs.Edit
             rs!DES2 = y & X
             rs.Update
         End If
     rs.MoveNext
    Loop Until rs.EOF
End Sub
Un saluto Davide

 ha scritto nel messaggio
news:e2ac43b1.04051...@posting.google.com...

Ufff...
va beh, visto che hai dimostrato che comunque c'hai voglia di lavorare...
Set rs = currentdb.OpenRecordset("select tblrighe.* from tblrighe order by
tblrighe.cap")
In questo modo hai la tabella ordinata per cap crescente
rs.MoveFirst
inizio = true
Do until rs.EOF
  if inizio = true then
    dal = rs!CAP
    inizio = false
  end if
  If rs!des1 = "**" Then
    al = rs!CAP
    rs.edit
    rs!DES2 = "DAL CAP " & dal & " AL CAP " & al
    rs.update
    inizio = true
  end if
  rs.MoveNext
Loop
Con la variabile inizio so se devo salvare il valore dell'inizio intervallo
o se devo skipparlo fino a trovare gli *
Questo algoritmo non gestisce la possibilità che il primo record abbia già
gli *
Antonio

...

Ciao Antonio
Ti ringrazio della tua disponibilità,
sei stato molto gentile.
Un saluto
Davide

 Un saluto
 Davide
Prego Ciao
Antonio