Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    lavorare su diverse tabelle aperte in access

    Esimi colleghi scienziati...
    ho un problemino da affrontare in ACCESS: premetto che io vengo dalla programmazione in Visual Dbase (e simili) dove tutto sembrava più facile.
    Devo operare una sostituzione di carattere all'interno di un campo (memo)in tutta la mia tabella: se il carattere è "X" devo farlo diventare "Y".
    Facile, direte. Basta usare la func REPLACE ed il gioco è fatto.
    Vero, dico io, infatti il sistema funziona se apro la mia tabella "test" e con un bel comando "DO ... LOOP" me la spazzolo tutta e, uso un solo carattere di verifica.
    Il problema si pone quando io ho una tabella da modificare (la mia "test") e una seconda tabella nella quale ho un tot di record composti da due campi: il carattere da trovare e quello da sostituire.
    Con VDbase io aprivo le due tabelle in aree diverse di memoria e passavo da una all'altra senza perdere il puntamento relativo
    esempio:
    sele 1 (apro la prima area)
    use caratt.dbf (ci infilo la prima tabella)
    sele 2 (apro la seconda area)
    use test.dbf (ci infilo la seconda tabella)
    sele 1 (vado nella prima area)
    do while .t. (comincia il ciclo !)
    v_1="carattere da trovare" (primo campo della tabella caratt.dbf)
    v_2="carattere da sostituire" (secondo campo della tab.caratt.dbf)
    sele 2 (vado nella seconda area)
    do while .not. eof() (mi spazzolo tutta la tabella)
    replace("testo da modificare", v_1,v_2)
    enddo (fine dalla spazzolata)
    sele 1 (torno nella prima area)
    skip 1 (mi sposto sul prossimo record)
    loop (ricomincio il giro !!)
    enddo

    ......

    Il vero problema è : COME SI FA IN VBA A TENERE APERTE DUE TABELLE E PASSARE DA UNA ALL'ALTRA COME NELL'ESEMPIO DI CUI SOPRA ?

    Scusate l'ignoranza ma spero di ricevere conforto da questa assemblea di luminari insigni.
    (e vai con le leccate...)
    Grazie !!!

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    12
    E' conccttualmente simile alla tua procedura precedente. Solo Che in Visual Basic 6 utilizzi l'oggetto "Recordset".
    Utilizzando un recordset per ogni singola area.

    il tuo codice dovrebbe assomigliare + o - a questo

    Dim Sele1 as New ADODB.Recordset
    Dim Sele2 as New ADODB.Recordset
    Sele1.open("carat")

    do while sele1.eof=false
    v_1="carattere da trovare" (primo campo della tabella caratt.dbf)
    v_2="carattere da sostituire" (secondo campo della tab.caratt.dbf)
    Sele2.open("test.dbf")
    do while sele2.eof=false
    '
    ' codice per il replace
    sele2.movenext
    enddo
    sele2.close
    sele1.movenext
    loop

  3. #3
    Grazie tante e a buon rendere

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.