Newsgroup: it.comp.appl.access
Titolo: aiuto su metodo connect di tabelle e fogli excel

con questa funzione ricollego le tabelle al nuovo percorso perň la 27
tabella č un foglio di excel e quindi non so come ridefinire tale percorso
un quanto mi dice formato di database non valido
Public Sub ConnettiTabelle(path2 As String)
Dim miatable As TableDef
Dim miodb As Database
Dim path As String
Dim i As Integer
path = path2
Set miodb = CurrentDb()
For i = 0 To miodb.TableDefs.Count - 1
   If i <> 27 Then
    Set miatable = miodb.TableDefs(i)
    If miatable.Connect <> "" Then
       miatable.Connect = ";DATABASE=" & path & ";UID=sa;PWD=123;"
       miatable.RefreshLink
    End If
    End If
Next i
End Sub
mi sapete aiutare?


ho provato anche cosi
    If fName <> "" Then
        Forms![AZIENDALI]![percorso]![pathXls] = fName & "\listino$"
        Connettilistino (Forms![AZIENDALI]![percorso]![pathXls])
    End If
fname è il percorso del file xls
ma quando faccio:
    Set miatable = miodb.TableDefs(i)
    If miatable.Connect <> "" Then
        miatable.Connect = ";[Excel 8.0]=" & path
        miatable.RefreshLink
    End If
mi và in debug al seguente:
        miatable.RefreshLink
dicendomi: errore 3001 argomento non valido.

 ha scritto nel messaggio
news:bhjv96$bqj$1...@lacerta.tiscalinet.it...

Se da Opzioni imposti a visibile gli oggetti di sistema e poi apri la
tabella MySysObject,
potrai leggere in corrispondenza della "Tabella" di Excel allegata, alla
colonna "Connect" qualcosa come
Excel 5.0;HDR=NO;IMEX=2; e nella colonna "Database" qualcosa tipo:
C:\Documents and Settings\Administrator\Documenti\Affitto.xls
Poi se cerchi nella guida: Esempio di proprietà Connect e SourceTableName
(DAO)
o più semplicemente "Connect", troverai gli esempi che possono servirti.
Qui ti riporto l'esempio della guida:
In questo esempio di utilizzano le proprietà Connect e SourceTableName per
collegare diverse tabelle esterne ad un database di Microsoft Jet. Per poter
eseguire questa routine, è necessario utilizzare la routine ConnectOutput.
Sub ConnectX()
 Dim dbsTemp As Database
 Dim strMenu As String
 Dim strInput As String
 ' Apre un database di Microsoft Jet a cui
 ' collegare una tabella.
 Set dbsTemp = OpenDatabase("DB1.mdb")
 ' Crea il testo del menu.
 strMenu = "Immette il numero per l'origine dati:" & vbCr
 strMenu = strMenu & _
  "   1. database di Microsoft Jet" & vbCr
 strMenu = strMenu & _
  "   2. tabella di Microsoft FoxPro 3.0" & vbCr
 strMenu = strMenu & _
  "   3. tabella di dBASE" & vbCr
strMenu = strMenu & _
  "   4. tabella di Paradox" & vbCr
 strMenu = strMenu & _
  "   M. (vedere le scelte 5-9)"
 ' Scelta dell'utente.
 strInput = InputBox(strMenu)
 If UCase(strInput) = "M" Then
  ' Crea il testo del menu.
  strMenu = "Immette il numero per l'origine dati:" & vbCr
  strMenu = strMenu & _
   "   5. foglio di calcolo di Microsoft Excel" & vbCr
  strMenu = strMenu & _
   "   6. foglio di calcolo di Lotus " & vbCr
strMenu = strMenu & _
   "   7. testo delimitato da virgole (CSV)" & vbCr
  strMenu = strMenu & _
   "   8. tabella di HTML" & vbCr
  strMenu = strMenu & _
   "   9. cartella di Microsoft Exchange"
  ' Scelta dell'utente.
  strInput = InputBox(strMenu)
 End If
 ' Richiama la routine ConnectOutput. Il terzo argomento
 ' sarà usato come stringa Connect e il quarto
 ' argomento sarà usato come SourceTableName.
 Select Case Val(strInput)
Case 1
   ConnectOutput dbsTemp, _
    "JetTable", _
    ";DATABASE=C:\My Documents\Northwind.mdb", _
    "Impiegati"
  Case 2
   ConnectOutput dbsTemp, _
    "FoxProTable", _
    "FoxPro 3.0;DATABASE=C:\FoxPro30\Samples", _
    "Q1Sales"
  Case 3
   ConnectOutput dbsTemp, _
    "dBASETable", _
    "dBase IV;DATABASE=C:\dBASE\Samples", _
    "Account"
  Case 4
   ConnectOutput dbsTemp, _
    "ParadoxTable", _
"Paradox 3.X;DATABASE=C:\Paradox\Samples", _
    "Account"
  Case 5
   ConnectOutput dbsTemp, _
    "ExcelTable", _
    "Excel 5.0;" & _
     "DATABASE=C:\Excel\Samples\Q1Sales.xls", _
    "Vendite di gennaio"
  Case 6
   ConnectOutput dbsTemp, _
    "LotusTable", _
    "Lotus WK3;" & _
     "DATABASE=C:\Lotus\Samples\Sales.xls", _
    "TERZOTRIM"
  Case 7
   ConnectOutput dbsTemp, _
    "CSVTable", _
"Text;DATABASE=C:\Samples", _
    "Sample.txt"
  Case 8
   ConnectOutput dbsTemp, _
    "HTMLTable", _
    "HTML Import;DATABASE=http://" & _
     "
www.server1.com/samples/page1.html
", _
    "Q1SalesData"
  Case 9
   ConnectOutput dbsTemp, _
    "ExchangeTable", _
    "Exchange 4.0;MAPILEVEL=" & _
     "Mailbox - Michelle Wortman (Exchange)" & _
     "|People\Important;", _
    "Jerry Wheeler"
 End Select
dbsTemp.Close
End Sub
Sub ConnectOutput(dbsTemp As Database, _
 strTabella As String, strConness As String, _
 strOrigineTabella As String)
 Dim tdfCollegata As TableDef
 Dim rstCollegata As Recordset
 Dim intTemp As Integer
 ' Crea una nuova TableDef, imposta le proprietà
 ' Connect e SourceTableName in base agli argomenti
 ' passati e la accoda all'insieme TableDefs.
 Set tdfCollegata = dbsTemp.CreateTableDef(strTabella)
 tdfCollegata.Connect = strConness
tdfCollegata.SourceTableName = strTableOrigine
 dbsTemp.TableDefs.Append tdfCollegata
 Set rstCollegata = dbsTemp.OpenRecordset(strTabella)
 Debug.Print "Dati della tabella collegata:"
 ' Visualizza i primi tre record della tabella collegata.
 intTemp = 1
 With rstCollegata
  Do While Not .EOF And intTemp <= 3
   Debug.Print , .Fields(0), .Fields(1)
   intTemp = intTemp + 1
   .MoveNext
  Loop
  If Not .EOF Then Debug.Print , "[altri record]"
.Close
 End With
 ' Elimina la tabella collegata perché è una dimostrazione.
 dbsTemp.TableDefs.Delete strTabella
End Sub
Ciao, Carlo

 C:\Documents and Settings\Administrator\Documenti\Affitto.xls
scusa la mia ignoranza ma dove la trovo quella tabella? in che database?

 ha scritto nel messaggio
news:bhl6er$kaf$1...@lacerta.tiscalinet.it...

Quella tabella č una tabella di sistema..nascosta.
Per visualizzarla da un qualsiasi database (ovviamente userai il DB con il
collegamento da Excel) usa il menů "Strumenti" e poi "Opzioni".
In "Visualizzazione" spunta "Oggetti nascosti" e "Oggetti di sistema". Ora
le tabelle nascoste sono visibili nell'elenco delle tabelle.
Ciao, Carlo


grazie ora ho visto, c'č scritto
Excel 5.0;HDR=YES;IMEX=2;
ho fatto quindi
    If miatable.Connect <> "" Then
        miatable.Connect = ";Excel 5.0=" & path & ";HDR=YES;IMEX=2;"
        miatable.RefreshLink
    End If
ma in corrispondenza di  miatable.RefreshLink mi dice ancora errore 3001
argomento non valido.


Leggiti bene l'esempio che ti ho riportato...troverai la soluzione:
"Esempio di proprietà Connect e SourceTableName (DAO)"
Ciao, Carlo