Newsgroup: it.comp.appl.access
Titolo: Help array da tabella

Ciao,
ho una function che uso per fare il re-link delle tabelle da un rdbms
(in questo caso PostgreSQL)... l'utente può cambiare il server ed il
db a cui collegarsi spefificando questi prametri in un form apposito.
Id e password sono due variabili globali, la stringa con tutte le
opzioni odbc li prendo da un'altra funzione getodbcparam().
Con un .RefreshLink eseguo il relink passando l'elenco delle tabella
attraverso un array. Ora vorrei avere una tabella in cui iserire il
nome delle tabelle.
Qualcuno ha qualche suggerimento da darmi ? o qualche esempio da cui
scopiazzare del codice ?
Grazie.
Ganimede Dignan.
Function changeodbc()
On Error GoTo errore
Dim dbs As Database
Dim tdf As TableDef
Dim odbcparm As String
Dim arr As Variant
Dim tabe As Variant
odbcparm = getodbcparam() & ";UID=" & pubid & ";PWD=" & pubpasswd
Set dbs = CurrentDb
arr = Array("tabella1", "tabella2", "tabella3", "tabella4")
For Each tabe In arr
    Set tdf = dbs.TableDefs(tabe)
    tdf.Connect = odbcparm
    tdf.RefreshLink
Next tabe
    If MsgBox("impostazione dei parametri di connessione riuscita con
successo.", vbInformation + vbOKOnly, "Messaggio:") Then
    End If
    Call chkversion(feversion())
Exit Function
errore:
    If MsgBox("impostazione dei parametri di connessione non riuscita,
controllare che i parametri forniti siano corretti.", vbCritical +
vbOKOnly, "Messaggio:") Then
    End If
Exit Function
End Function

 scopiazzare del codice ?
A dir la verita' non ho ben compreso quello che vuoi fare.
1) Fare il relink su altro indirizzo di tabelle gia' presenti su 
msysobjects?
2) Linkare o relinkare in funzione di una tabella guida (necessaria solo 
per la parte di 1' link)?
3) Prendere tutte le tabelle del dbms bersaglio e linkarle o relinkarle?
Sui siti di riferimento di questo NG ci dovrebbe essere parecchia roba 
al riguardo, 
www.sitocomune.com
 (o .it non mi ricordo mai), 
www.alessandrobaraldi.it
, 
www.accessgroup.it
--
ac

 ha scritto nel messaggio 
news:5b8450db-e1a0-45f3...@34g2000hsh.googlegroups.com...
Ciao,
ho una function che uso per fare il re-link delle tabelle da un rdbms
(in questo caso PostgreSQL)... l'utente può cambiare il server ed il
db a cui collegarsi spefificando questi prametri in un form apposito.
Id e password sono due variabili globali, la stringa con tutte le
opzioni odbc li prendo da un'altra funzione getodbcparam().
Con un .RefreshLink eseguo il relink passando l'elenco delle tabella
attraverso un array. Ora vorrei avere una tabella in cui iserire il
nome delle tabelle.
Qualcuno ha qualche suggerimento da darmi ? o qualche esempio da cui
scopiazzare del codice ?
---Risposta-----
Hai già tutto e per giunta proprio mentre esegui la routine di relink...
Infatti "...For Each tabe In arr..."
elenca le tabelle...apri un recordset della tabella alla quale vuoi accodare 
i nomi ed hai fatto.
Eventualmente puoi svuotare la tabella prima e poi riempirla con i nuovi 
nomi.
Ciao, Carlo

Ciao a tutti,
non mi avete aiutato molto, cmq cercando un poco in giro ho scoperto
la meraviglia del .GetRows, l'unico dubbio è che mi pare di capire
richieda per forza di cose di specificare il numero di righe (Almeno
in A97).
Miao.
Function changeodbc()
On Error GoTo errore
Dim dbs As Database
Dim tdf As TableDef
Dim rst As Recordset
Dim arr As Variant
Dim name As Variant
Dim odbcparm As String
odbcparm = getodbcparam() & ";UID=" & pubid & ";PWD=" & pubpasswd
Set dbs = CurrentDb
Set rst = dbs.OpenRecordset("SELECT Name FROM MSysObjects WHERE Name
Like '*_tab' AND Type=4 OR Name Like '*_vw' AND Type=4")
arr = rst.GetRows(999)
For Each name In arr
    Set tdf = dbs.TableDefs(name)
    tdf.Connect = odbcparm
    tdf.RefreshLink
Next name


 ha scritto nel messaggio 
news:206fcf72-0fa6-4a12...@64g2000hsu.googlegroups.com...
Ciao a tutti,
non mi avete aiutato molto, cmq cercando un poco in giro ho scoperto
la meraviglia del .GetRows, l'unico dubbio è che mi pare di capire
richieda per forza di cose di specificare il numero di righe (Almeno
in A97).
-------------------------------------
Intanto scusa se abbiamo cercato di aiutarti!
Sbaglio o chiedevi "...Ora vorrei avere una tabella in cui iserire il
nome delle tabelle"..
Di "MSysObjects" ne parlava gia A.Cara...ma non hai risposto.
Io ti ho suggerito una strada per "..inserire il nome delle tabelle..:" e 
non risposto.
Mi spieghi come lo hai risolto questo tuo problema?
Nel codice che hai postato dimostri solo un'altra strada (perarltro già 
accennata da A.Cara) per fare il relink delle tabelle
Dunque?
Ciao, Carlo

 ha scritto nel messaggionews:206fcf72-0fa6-4a12...@64g2000hsu.googlegroups.com...

Mi serviva come popolare l'array da un recorcordset. L'ho risolto
usando .GetRows
Grazie.
Ganimede Dignan.