Newsgroup: it.comp.appl.access
Titolo: trova e sostituisci

salve,
ho una tabella che contiene n campi,
vorrei automatizzare la ricerca del carattere "à" e quindi sostituirlo con
"a"
.... è un esempio.
siccome è una tabella creata dinamicamente non conosco a priori il numero
dei campi so solo che avrò
una sequenza di campi dal campo01.....al ....campoNN.
dall'interfaccia di access questa è una operazione possibile,  non riesco
invece via codice ad automatizzarla  in quanto la macro docmd.runcommand
replace non mi permette di passare parametri.
--
Cordialità
Calogero Di Lorenzo

Calogero Di Lorenzo <calo...@NOSPAMdilonet.com> wrote in message
880l0k$60n$1...@nslave1.tin.it...

Dovresti utilizzare vba, solo così puoi "leggere" tutto sulla tabella creata
dinamicamente...
Ciao.

 dinamicamente...
grazie dimmi come amico

replace non mi permette di passare parametri.
function sostituisci(nome_tabella)
dim mioset as recordset
dim mioset = currentdb.openrecordset(nome_tabella)
mioset.movefirst
do until mioset.EOF
  mioset.edit
  for i = 0 to mioset.fields.count - 1
    app = ""
    current_field = mioset.fields(i)
    for j = 1 to len(current_field)
      if mid(current_field, j , 1) = "à" then
        app = app & "a"
      else
        app = app & mid(current_field, j , 1)
      end if
    next j
    mioset.fields(i) = app
  next i
  mioset.update
  mioset.movenext
loop
Antonio

 mioset.movefirst
e nel caso che mioset abbia 0 record ?
Come ci si comporta... la chiamata a movefirst mi cenera un errore runtime
(nessun record corrente) da gestire!
Cosa di deve fare se io non ho nessuna intenzione di generare e gestire
questi errori ?

 questi errori ?
Scusami, ma cosa ti costa aggiungere qualche riga di codice?
function sostituisci(nome_tabella)
on error goto Arrore
dim mioset as recordset
set mioset = currentdb.openrecordset(nome_tabella)
mioset.movefirst
do until mioset.EOF
  mioset.edit
  for i = 0 to mioset.fields.count - 1
    app = ""
    current_field = mioset.fields(i)
    for j = 1 to len(current_field)
      if mid(current_field, j , 1) = "à" then
        app = app & "a"
      else
        app = app & mid(current_field, j , 1)
      end if
    next j
    mioset.fields(i) = app
  next i
  mioset.update
  mioset.movenext
loop
esci:
    exit function
Arrore:
    if rrr = 3021 then msgBox ("La Tabella non contiene nessun record!")
    resume esci
Ciao RoDAgo

questi errori ?
usa il test di fine recordset... tipo questo:
if not mioset.BOF and not mioset.EOF then
    mioset.movefirst
    ...
endif
oppure al contrario:
if mioset.BOF and mioset.EOF then
    msgbox "Il recordset è vuoto"
    exit sub
endif
EOF è l'indicatore di End Of File (vecchio retaggio del Basic)
e BOF è l'indicatore di Bottom Of File (inizio file).
Micio

questi errori ?
Va beh, dai, č banale!!!
dopo la set, (non era dim nell'istruzione precedente, scusa) fai
if mioset.recordcount = 0 then exit sub
mioset.movefirst
Antonio

 mioset.movefirst
infatti è quello che ho fatto, ma nei manuali c'è scritto che recordcount ha
un valore non affidabile finche non si scorre tutto il recordset con
mioset.movefirst
mioset.movelast
e ora come la mettiamo ? :)
Io ho fatto delle prove e mi ha sempre funzionato certo, ma il giorno che
porterò l'applicativo dal cliente e non funzionerà mi picchierò da solo!
ciao e grazie

...

No no  no, attenzione!!!
SICURAMENTE se il recordset è vuoto, il valore del recordcount è 0, sia che
lo scorri che non lo scorri, questo è poco ma sicuro!!!!
Il dubbio, dubbio perchè io non ne sono certo al 100% e anche in discussioni
passate non si è fatta luce completamente, è che, nelle tabelle locali il
valore di recordcount è subito disponibile senza scorrere il recordset,
mentre per le tabelle allegate è consigliabile scorrerlo prima.
Io comunque non ho mai avuto problemi, è infatti ho scritto consigliabile,
non necessario.
Ribadisco però che per recordset vuoto, puoi stare certo che avrai sempre 0
!!!!!
Antonio

 non necessario.
non hai idea di che peso mihai tolto dallo stomaco
dio benedica i ng!
ciao e grazie  mille



 lo scorri che non lo scorri, questo č poco ma sicuro!!!!
