Bonjour *aussi* !
Pour réattacher tes tables, tu peux utiliser ceci:
http://www.3stone.be/access/articles.php?lng=fr&pg(
--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)
"William Kameron"
|A partir de ma base de données, je voudrais créer par VBA tous les liens des
| tables dans une base de donnée frontale:
| J'ai esayé de modifier le code qui fait l'inverse que j'ai pris dans l'aide
| d'access.
|
| Mais depuis je suis bloqué au niveau de cette erreur :
|
| 3011
| Le moteur de base de données Microsoft Jet n'a pas pu trouver l'objet
| 'Accréditations sur opérations de production'. Assurez-vous que l'objet
| existe et que vous avez correctement saisi son nom et son chemin d'accès.
|
| Voici du reste le code assoccié :
|
| [CODE]
| Function LierTablesDorsale(StrBaseFrontale As String) As Boolean
| On Error GoTo Err_LierTablesDorsale
| Dim strMotPasse As String
| Dim strConnect As String
| Dim strNomsTables() As String
| Dim strTemp As String
| Dim i As Integer
| Dim oDb As DAO.Database
| Dim oDbSource As DAO.Database
| Dim oTbl As DAO.TableDef
| Dim oTblSource As DAO.TableDef
|
| strPass = "thanks"
|
| 'dans StrBaseFrontale on trouve le chemin de ma cible style "C:test.mdb"
| strConnect = "MS Access;pwd=" & strPass & ";DATABASE=" & StrBaseFrontale
| Set oDb = DBEngine.OpenDatabase(StrBaseFrontale, dbDriverComplete,
| False, strConnect)
| Set oDbSource = CurrentDb
|
| For Each oTblSource In oDbSource.TableDefs
| If (oTblSource.Attributes And dbSystemObject) = 0 Then
| strTemp = strTemp & oTblSource.Name & "|"
| End If
| Next
| oDbSource.Close: Set oDbSource = Nothing
| Debug.Print strTemp
|
| strNomsTables = Split(Left(strTemp, Len(strTemp) - 1), "|")
| For i = 0 To UBound(strNomsTables)
| Debug.Print i, strNomsTables(i)
|
| 'Initialisation de Table def
| Set oTbl = oDb.CreateTableDef(strNomsTables(i))
| Debug.Print "Affectation OK"
|
| 'Conection à la Frontale
| oTbl.Connect = strConnect
| Debug.Print "Connection OK"
|
| 'Désignation de la table à attacher
| oTbl.SourceTableName = strNomsTables(i)
| Debug.Print "Désignation OK"
|
| 'Modification de Tabledefs et mise à jour de la définition
| 'C'est ici que cela coince !
| ' Le moteur de base de données Microsoft Jet n'a pas pu
| trouver l'objet 'Nom_de_la_table'.
| ' Assurez-vous que l'objet existe et que vous avez
| correctement saisi son nom et son chemin d'accès.
| oDb.TableDefs.Append oTbl
| Debug.Print "Definition OK"
| Next i
|
| oDb.TableDefs.Refresh
|
| Exit_LierTablesDorsale:
| Set oDbSource = Nothing
| Set oTbl = Nothing
| Set oDb = Nothing
| Exit Function
|
| Err_LierTablesDorsale:
| Select Case Err.Number
| Case 3012
| Debug.Print Err.Number, Err.Description
| Resume Next
|
| Case Else
| Debug.Print Err.Number, Err.Description
| TraiteErreur Err.Number, "LierTablesDorsale :" & vbCr &
| Err.Description
| Resume Exit_LierTablesDorsale
| End Select
|
| End Function
|
| [/CODE]
|
| Merci pour toutes vos contributions.
|
Bonjour *aussi* !
Pour réattacher tes tables, tu peux utiliser ceci:
http://www.3stone.be/access/articles.php?lng=fr&pg(
--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)
"William Kameron"
|A partir de ma base de données, je voudrais créer par VBA tous les liens des
| tables dans une base de donnée frontale:
| J'ai esayé de modifier le code qui fait l'inverse que j'ai pris dans l'aide
| d'access.
|
| Mais depuis je suis bloqué au niveau de cette erreur :
|
| 3011
| Le moteur de base de données Microsoft Jet n'a pas pu trouver l'objet
| 'Accréditations sur opérations de production'. Assurez-vous que l'objet
| existe et que vous avez correctement saisi son nom et son chemin d'accès.
|
| Voici du reste le code assoccié :
|
| [CODE]
| Function LierTablesDorsale(StrBaseFrontale As String) As Boolean
| On Error GoTo Err_LierTablesDorsale
| Dim strMotPasse As String
| Dim strConnect As String
| Dim strNomsTables() As String
| Dim strTemp As String
| Dim i As Integer
| Dim oDb As DAO.Database
| Dim oDbSource As DAO.Database
| Dim oTbl As DAO.TableDef
| Dim oTblSource As DAO.TableDef
|
| strPass = "thanks"
|
| 'dans StrBaseFrontale on trouve le chemin de ma cible style "C:test.mdb"
| strConnect = "MS Access;pwd=" & strPass & ";DATABASE=" & StrBaseFrontale
| Set oDb = DBEngine.OpenDatabase(StrBaseFrontale, dbDriverComplete,
| False, strConnect)
| Set oDbSource = CurrentDb
|
| For Each oTblSource In oDbSource.TableDefs
| If (oTblSource.Attributes And dbSystemObject) = 0 Then
| strTemp = strTemp & oTblSource.Name & "|"
| End If
| Next
| oDbSource.Close: Set oDbSource = Nothing
| Debug.Print strTemp
|
| strNomsTables = Split(Left(strTemp, Len(strTemp) - 1), "|")
| For i = 0 To UBound(strNomsTables)
| Debug.Print i, strNomsTables(i)
|
| 'Initialisation de Table def
| Set oTbl = oDb.CreateTableDef(strNomsTables(i))
| Debug.Print "Affectation OK"
|
| 'Conection à la Frontale
| oTbl.Connect = strConnect
| Debug.Print "Connection OK"
|
| 'Désignation de la table à attacher
| oTbl.SourceTableName = strNomsTables(i)
| Debug.Print "Désignation OK"
|
| 'Modification de Tabledefs et mise à jour de la définition
| 'C'est ici que cela coince !
| ' Le moteur de base de données Microsoft Jet n'a pas pu
| trouver l'objet 'Nom_de_la_table'.
| ' Assurez-vous que l'objet existe et que vous avez
| correctement saisi son nom et son chemin d'accès.
| oDb.TableDefs.Append oTbl
| Debug.Print "Definition OK"
| Next i
|
| oDb.TableDefs.Refresh
|
| Exit_LierTablesDorsale:
| Set oDbSource = Nothing
| Set oTbl = Nothing
| Set oDb = Nothing
| Exit Function
|
| Err_LierTablesDorsale:
| Select Case Err.Number
| Case 3012
| Debug.Print Err.Number, Err.Description
| Resume Next
|
| Case Else
| Debug.Print Err.Number, Err.Description
| TraiteErreur Err.Number, "LierTablesDorsale :" & vbCr &
| Err.Description
| Resume Exit_LierTablesDorsale
| End Select
|
| End Function
|
| [/CODE]
|
| Merci pour toutes vos contributions.
|
Bonjour *aussi* !
Pour réattacher tes tables, tu peux utiliser ceci:
http://www.3stone.be/access/articles.php?lng=fr&pg(
--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)
"William Kameron"
|A partir de ma base de données, je voudrais créer par VBA tous les liens des
| tables dans une base de donnée frontale:
| J'ai esayé de modifier le code qui fait l'inverse que j'ai pris dans l'aide
| d'access.
|
| Mais depuis je suis bloqué au niveau de cette erreur :
|
| 3011
| Le moteur de base de données Microsoft Jet n'a pas pu trouver l'objet
| 'Accréditations sur opérations de production'. Assurez-vous que l'objet
| existe et que vous avez correctement saisi son nom et son chemin d'accès.
|
| Voici du reste le code assoccié :
|
| [CODE]
| Function LierTablesDorsale(StrBaseFrontale As String) As Boolean
| On Error GoTo Err_LierTablesDorsale
| Dim strMotPasse As String
| Dim strConnect As String
| Dim strNomsTables() As String
| Dim strTemp As String
| Dim i As Integer
| Dim oDb As DAO.Database
| Dim oDbSource As DAO.Database
| Dim oTbl As DAO.TableDef
| Dim oTblSource As DAO.TableDef
|
| strPass = "thanks"
|
| 'dans StrBaseFrontale on trouve le chemin de ma cible style "C:test.mdb"
| strConnect = "MS Access;pwd=" & strPass & ";DATABASE=" & StrBaseFrontale
| Set oDb = DBEngine.OpenDatabase(StrBaseFrontale, dbDriverComplete,
| False, strConnect)
| Set oDbSource = CurrentDb
|
| For Each oTblSource In oDbSource.TableDefs
| If (oTblSource.Attributes And dbSystemObject) = 0 Then
| strTemp = strTemp & oTblSource.Name & "|"
| End If
| Next
| oDbSource.Close: Set oDbSource = Nothing
| Debug.Print strTemp
|
| strNomsTables = Split(Left(strTemp, Len(strTemp) - 1), "|")
| For i = 0 To UBound(strNomsTables)
| Debug.Print i, strNomsTables(i)
|
| 'Initialisation de Table def
| Set oTbl = oDb.CreateTableDef(strNomsTables(i))
| Debug.Print "Affectation OK"
|
| 'Conection à la Frontale
| oTbl.Connect = strConnect
| Debug.Print "Connection OK"
|
| 'Désignation de la table à attacher
| oTbl.SourceTableName = strNomsTables(i)
| Debug.Print "Désignation OK"
|
| 'Modification de Tabledefs et mise à jour de la définition
| 'C'est ici que cela coince !
| ' Le moteur de base de données Microsoft Jet n'a pas pu
| trouver l'objet 'Nom_de_la_table'.
| ' Assurez-vous que l'objet existe et que vous avez
| correctement saisi son nom et son chemin d'accès.
| oDb.TableDefs.Append oTbl
| Debug.Print "Definition OK"
| Next i
|
| oDb.TableDefs.Refresh
|
| Exit_LierTablesDorsale:
| Set oDbSource = Nothing
| Set oTbl = Nothing
| Set oDb = Nothing
| Exit Function
|
| Err_LierTablesDorsale:
| Select Case Err.Number
| Case 3012
| Debug.Print Err.Number, Err.Description
| Resume Next
|
| Case Else
| Debug.Print Err.Number, Err.Description
| TraiteErreur Err.Number, "LierTablesDorsale :" & vbCr &
| Err.Description
| Resume Exit_LierTablesDorsale
| End Select
|
| End Function
|
| [/CODE]
|
| Merci pour toutes vos contributions.
|
Bonjour *aussi* !
Pour réattacher tes tables, tu peux utiliser ceci:
http://www.3stone.be/access/articles.php?lng=fr&pg(
--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)
"William Kameron"
|A partir de ma base de données, je voudrais créer par VBA tous les liens des
| tables dans une base de donnée frontale:
| J'ai esayé de modifier le code qui fait l'inverse que j'ai pris dans l'aide
| d'access.
|
| Mais depuis je suis bloqué au niveau de cette erreur :
|
| 3011
| Le moteur de base de données Microsoft Jet n'a pas pu trouver l'objet
| 'Accréditations sur opérations de production'. Assurez-vous que l'objet
| existe et que vous avez correctement saisi son nom et son chemin d'accès.
|
| Voici du reste le code assoccié :
|
| [CODE]
| Function LierTablesDorsale(StrBaseFrontale As String) As Boolean
| On Error GoTo Err_LierTablesDorsale
| Dim strMotPasse As String
| Dim strConnect As String
| Dim strNomsTables() As String
| Dim strTemp As String
| Dim i As Integer
| Dim oDb As DAO.Database
| Dim oDbSource As DAO.Database
| Dim oTbl As DAO.TableDef
| Dim oTblSource As DAO.TableDef
|
| strPass = "thanks"
|
| 'dans StrBaseFrontale on trouve le chemin de ma cible style "C:test.mdb"
| strConnect = "MS Access;pwd=" & strPass & ";DATABASE=" & StrBaseFrontale
| Set oDb = DBEngine.OpenDatabase(StrBaseFrontale, dbDriverComplete,
| False, strConnect)
| Set oDbSource = CurrentDb
|
| For Each oTblSource In oDbSource.TableDefs
| If (oTblSource.Attributes And dbSystemObject) = 0 Then
| strTemp = strTemp & oTblSource.Name & "|"
| End If
| Next
| oDbSource.Close: Set oDbSource = Nothing
| Debug.Print strTemp
|
| strNomsTables = Split(Left(strTemp, Len(strTemp) - 1), "|")
| For i = 0 To UBound(strNomsTables)
| Debug.Print i, strNomsTables(i)
|
| 'Initialisation de Table def
| Set oTbl = oDb.CreateTableDef(strNomsTables(i))
| Debug.Print "Affectation OK"
|
| 'Conection à la Frontale
| oTbl.Connect = strConnect
| Debug.Print "Connection OK"
|
| 'Désignation de la table à attacher
| oTbl.SourceTableName = strNomsTables(i)
| Debug.Print "Désignation OK"
|
| 'Modification de Tabledefs et mise à jour de la définition
| 'C'est ici que cela coince !
| ' Le moteur de base de données Microsoft Jet n'a pas pu
| trouver l'objet 'Nom_de_la_table'.
| ' Assurez-vous que l'objet existe et que vous avez
| correctement saisi son nom et son chemin d'accès.
| oDb.TableDefs.Append oTbl
| Debug.Print "Definition OK"
| Next i
|
| oDb.TableDefs.Refresh
|
| Exit_LierTablesDorsale:
| Set oDbSource = Nothing
| Set oTbl = Nothing
| Set oDb = Nothing
| Exit Function
|
| Err_LierTablesDorsale:
| Select Case Err.Number
| Case 3012
| Debug.Print Err.Number, Err.Description
| Resume Next
|
| Case Else
| Debug.Print Err.Number, Err.Description
| TraiteErreur Err.Number, "LierTablesDorsale :" & vbCr &
| Err.Description
| Resume Exit_LierTablesDorsale
| End Select
|
| End Function
|
| [/CODE]
|
| Merci pour toutes vos contributions.
|
Bonjour *aussi* !
Pour réattacher tes tables, tu peux utiliser ceci:
http://www.3stone.be/access/articles.php?lng=fr&pg(
--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)
"William Kameron"
|A partir de ma base de données, je voudrais créer par VBA tous les liens des
| tables dans une base de donnée frontale:
| J'ai esayé de modifier le code qui fait l'inverse que j'ai pris dans l'aide
| d'access.
|
| Mais depuis je suis bloqué au niveau de cette erreur :
|
| 3011
| Le moteur de base de données Microsoft Jet n'a pas pu trouver l'objet
| 'Accréditations sur opérations de production'. Assurez-vous que l'objet
| existe et que vous avez correctement saisi son nom et son chemin d'accès.
|
| Voici du reste le code assoccié :
|
| [CODE]
| Function LierTablesDorsale(StrBaseFrontale As String) As Boolean
| On Error GoTo Err_LierTablesDorsale
| Dim strMotPasse As String
| Dim strConnect As String
| Dim strNomsTables() As String
| Dim strTemp As String
| Dim i As Integer
| Dim oDb As DAO.Database
| Dim oDbSource As DAO.Database
| Dim oTbl As DAO.TableDef
| Dim oTblSource As DAO.TableDef
|
| strPass = "thanks"
|
| 'dans StrBaseFrontale on trouve le chemin de ma cible style "C:test.mdb"
| strConnect = "MS Access;pwd=" & strPass & ";DATABASE=" & StrBaseFrontale
| Set oDb = DBEngine.OpenDatabase(StrBaseFrontale, dbDriverComplete,
| False, strConnect)
| Set oDbSource = CurrentDb
|
| For Each oTblSource In oDbSource.TableDefs
| If (oTblSource.Attributes And dbSystemObject) = 0 Then
| strTemp = strTemp & oTblSource.Name & "|"
| End If
| Next
| oDbSource.Close: Set oDbSource = Nothing
| Debug.Print strTemp
|
| strNomsTables = Split(Left(strTemp, Len(strTemp) - 1), "|")
| For i = 0 To UBound(strNomsTables)
| Debug.Print i, strNomsTables(i)
|
| 'Initialisation de Table def
| Set oTbl = oDb.CreateTableDef(strNomsTables(i))
| Debug.Print "Affectation OK"
|
| 'Conection à la Frontale
| oTbl.Connect = strConnect
| Debug.Print "Connection OK"
|
| 'Désignation de la table à attacher
| oTbl.SourceTableName = strNomsTables(i)
| Debug.Print "Désignation OK"
|
| 'Modification de Tabledefs et mise à jour de la définition
| 'C'est ici que cela coince !
| ' Le moteur de base de données Microsoft Jet n'a pas pu
| trouver l'objet 'Nom_de_la_table'.
| ' Assurez-vous que l'objet existe et que vous avez
| correctement saisi son nom et son chemin d'accès.
| oDb.TableDefs.Append oTbl
| Debug.Print "Definition OK"
| Next i
|
| oDb.TableDefs.Refresh
|
| Exit_LierTablesDorsale:
| Set oDbSource = Nothing
| Set oTbl = Nothing
| Set oDb = Nothing
| Exit Function
|
| Err_LierTablesDorsale:
| Select Case Err.Number
| Case 3012
| Debug.Print Err.Number, Err.Description
| Resume Next
|
| Case Else
| Debug.Print Err.Number, Err.Description
| TraiteErreur Err.Number, "LierTablesDorsale :" & vbCr &
| Err.Description
| Resume Exit_LierTablesDorsale
| End Select
|
| End Function
|
| [/CODE]
|
| Merci pour toutes vos contributions.
|
Bonjour *aussi* !
Pour réattacher tes tables, tu peux utiliser ceci:
http://www.3stone.be/access/articles.php?lng=fr&pg(
--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)
"William Kameron"
|A partir de ma base de données, je voudrais créer par VBA tous les liens des
| tables dans une base de donnée frontale:
| J'ai esayé de modifier le code qui fait l'inverse que j'ai pris dans l'aide
| d'access.
|
| Mais depuis je suis bloqué au niveau de cette erreur :
|
| 3011
| Le moteur de base de données Microsoft Jet n'a pas pu trouver l'objet
| 'Accréditations sur opérations de production'. Assurez-vous que l'objet
| existe et que vous avez correctement saisi son nom et son chemin d'accès.
|
| Voici du reste le code assoccié :
|
| [CODE]
| Function LierTablesDorsale(StrBaseFrontale As String) As Boolean
| On Error GoTo Err_LierTablesDorsale
| Dim strMotPasse As String
| Dim strConnect As String
| Dim strNomsTables() As String
| Dim strTemp As String
| Dim i As Integer
| Dim oDb As DAO.Database
| Dim oDbSource As DAO.Database
| Dim oTbl As DAO.TableDef
| Dim oTblSource As DAO.TableDef
|
| strPass = "thanks"
|
| 'dans StrBaseFrontale on trouve le chemin de ma cible style "C:test.mdb"
| strConnect = "MS Access;pwd=" & strPass & ";DATABASE=" & StrBaseFrontale
| Set oDb = DBEngine.OpenDatabase(StrBaseFrontale, dbDriverComplete,
| False, strConnect)
| Set oDbSource = CurrentDb
|
| For Each oTblSource In oDbSource.TableDefs
| If (oTblSource.Attributes And dbSystemObject) = 0 Then
| strTemp = strTemp & oTblSource.Name & "|"
| End If
| Next
| oDbSource.Close: Set oDbSource = Nothing
| Debug.Print strTemp
|
| strNomsTables = Split(Left(strTemp, Len(strTemp) - 1), "|")
| For i = 0 To UBound(strNomsTables)
| Debug.Print i, strNomsTables(i)
|
| 'Initialisation de Table def
| Set oTbl = oDb.CreateTableDef(strNomsTables(i))
| Debug.Print "Affectation OK"
|
| 'Conection à la Frontale
| oTbl.Connect = strConnect
| Debug.Print "Connection OK"
|
| 'Désignation de la table à attacher
| oTbl.SourceTableName = strNomsTables(i)
| Debug.Print "Désignation OK"
|
| 'Modification de Tabledefs et mise à jour de la définition
| 'C'est ici que cela coince !
| ' Le moteur de base de données Microsoft Jet n'a pas pu
| trouver l'objet 'Nom_de_la_table'.
| ' Assurez-vous que l'objet existe et que vous avez
| correctement saisi son nom et son chemin d'accès.
| oDb.TableDefs.Append oTbl
| Debug.Print "Definition OK"
| Next i
|
| oDb.TableDefs.Refresh
|
| Exit_LierTablesDorsale:
| Set oDbSource = Nothing
| Set oTbl = Nothing
| Set oDb = Nothing
| Exit Function
|
| Err_LierTablesDorsale:
| Select Case Err.Number
| Case 3012
| Debug.Print Err.Number, Err.Description
| Resume Next
|
| Case Else
| Debug.Print Err.Number, Err.Description
| TraiteErreur Err.Number, "LierTablesDorsale :" & vbCr &
| Err.Description
| Resume Exit_LierTablesDorsale
| End Select
|
| End Function
|
| [/CODE]
|
| Merci pour toutes vos contributions.
|
***** BONJOUR A TOUS ****
Merci 3stone !
Où a t'on souvent la tête quand on a un problème ?
Je voudrais apporter une précision :
Le but de ma procédure est de créer les liens dans la frontale en étant dans
la dorsale. "Créer les liens à distance" puis, plus tard vérifier leur
effectivité à l'ouverture de la base frontale.
De la frontale, aucun problème puisque la procédure origale récupérée dans
l'aide fonctionne bien.
Pour ta procédure 3stone, je l'incrit tout de suite dans le autoxec de ma
base frontale puisque tu confirmes qu'elle est la meilleure et la plus rapide.
Merci encore.
"3stone" a écrit :
> Bonjour *aussi* !
>
>
> Pour réattacher tes tables, tu peux utiliser ceci:
> http://www.3stone.be/access/articles.php?lng=fr&pg(
>
>
> --
> A+
> Pierre (3stone) Access MVP
> Perso: http://www.3stone.be/
> MPFA: http://www.mpfa.info/ (infos générales)
>
>
>
>
> "William Kameron"
> |A partir de ma base de données, je voudrais créer par VBA tous les liens des
> | tables dans une base de donnée frontale:
> | J'ai esayé de modifier le code qui fait l'inverse que j'ai pris dans l'aide
> | d'access.
> |
> | Mais depuis je suis bloqué au niveau de cette erreur :
> |
> | 3011
> | Le moteur de base de données Microsoft Jet n'a pas pu trouver l'objet
> | 'Accréditations sur opérations de production'. Assurez-vous que l'objet
> | existe et que vous avez correctement saisi son nom et son chemin d'accès.
> |
> | Voici du reste le code assoccié :
> |
> | [CODE]
> | Function LierTablesDorsale(StrBaseFrontale As String) As Boolean
> | On Error GoTo Err_LierTablesDorsale
> | Dim strMotPasse As String
> | Dim strConnect As String
> | Dim strNomsTables() As String
> | Dim strTemp As String
> | Dim i As Integer
> | Dim oDb As DAO.Database
> | Dim oDbSource As DAO.Database
> | Dim oTbl As DAO.TableDef
> | Dim oTblSource As DAO.TableDef
> |
> | strPass = "thanks"
> |
> | 'dans StrBaseFrontale on trouve le chemin de ma cible style "C:test.mdb"
> | strConnect = "MS Access;pwd=" & strPass & ";DATABASE=" & StrBaseFrontale
> | Set oDb = DBEngine.OpenDatabase(StrBaseFrontale, dbDriverComplete,
> | False, strConnect)
> | Set oDbSource = CurrentDb
> |
> | For Each oTblSource In oDbSource.TableDefs
> | If (oTblSource.Attributes And dbSystemObject) = 0 Then
> | strTemp = strTemp & oTblSource.Name & "|"
> | End If
> | Next
> | oDbSource.Close: Set oDbSource = Nothing
> | Debug.Print strTemp
> |
> | strNomsTables = Split(Left(strTemp, Len(strTemp) - 1), "|")
> | For i = 0 To UBound(strNomsTables)
> | Debug.Print i, strNomsTables(i)
> |
> | 'Initialisation de Table def
> | Set oTbl = oDb.CreateTableDef(strNomsTables(i))
> | Debug.Print "Affectation OK"
> |
> | 'Conection à la Frontale
> | oTbl.Connect = strConnect
> | Debug.Print "Connection OK"
> |
> | 'Désignation de la table à attacher
> | oTbl.SourceTableName = strNomsTables(i)
> | Debug.Print "Désignation OK"
> |
> | 'Modification de Tabledefs et mise à jour de la définition
> | 'C'est ici que cela coince !
> | ' Le moteur de base de données Microsoft Jet n'a pas pu
> | trouver l'objet 'Nom_de_la_table'.
> | ' Assurez-vous que l'objet existe et que vous avez
> | correctement saisi son nom et son chemin d'accès.
> | oDb.TableDefs.Append oTbl
> | Debug.Print "Definition OK"
> | Next i
> |
> | oDb.TableDefs.Refresh
> |
> | Exit_LierTablesDorsale:
> | Set oDbSource = Nothing
> | Set oTbl = Nothing
> | Set oDb = Nothing
> | Exit Function
> |
> | Err_LierTablesDorsale:
> | Select Case Err.Number
> | Case 3012
> | Debug.Print Err.Number, Err.Description
> | Resume Next
> |
> | Case Else
> | Debug.Print Err.Number, Err.Description
> | TraiteErreur Err.Number, "LierTablesDorsale :" & vbCr &
> | Err.Description
> | Resume Exit_LierTablesDorsale
> | End Select
> |
> | End Function
> |
> | [/CODE]
> |
> | Merci pour toutes vos contributions.
> |
>
>
***** BONJOUR A TOUS ****
Merci 3stone !
Où a t'on souvent la tête quand on a un problème ?
Je voudrais apporter une précision :
Le but de ma procédure est de créer les liens dans la frontale en étant dans
la dorsale. "Créer les liens à distance" puis, plus tard vérifier leur
effectivité à l'ouverture de la base frontale.
De la frontale, aucun problème puisque la procédure origale récupérée dans
l'aide fonctionne bien.
Pour ta procédure 3stone, je l'incrit tout de suite dans le autoxec de ma
base frontale puisque tu confirmes qu'elle est la meilleure et la plus rapide.
Merci encore.
"3stone" a écrit :
> Bonjour *aussi* !
>
>
> Pour réattacher tes tables, tu peux utiliser ceci:
> http://www.3stone.be/access/articles.php?lng=fr&pg(
>
>
> --
> A+
> Pierre (3stone) Access MVP
> Perso: http://www.3stone.be/
> MPFA: http://www.mpfa.info/ (infos générales)
>
>
>
>
> "William Kameron"
> |A partir de ma base de données, je voudrais créer par VBA tous les liens des
> | tables dans une base de donnée frontale:
> | J'ai esayé de modifier le code qui fait l'inverse que j'ai pris dans l'aide
> | d'access.
> |
> | Mais depuis je suis bloqué au niveau de cette erreur :
> |
> | 3011
> | Le moteur de base de données Microsoft Jet n'a pas pu trouver l'objet
> | 'Accréditations sur opérations de production'. Assurez-vous que l'objet
> | existe et que vous avez correctement saisi son nom et son chemin d'accès.
> |
> | Voici du reste le code assoccié :
> |
> | [CODE]
> | Function LierTablesDorsale(StrBaseFrontale As String) As Boolean
> | On Error GoTo Err_LierTablesDorsale
> | Dim strMotPasse As String
> | Dim strConnect As String
> | Dim strNomsTables() As String
> | Dim strTemp As String
> | Dim i As Integer
> | Dim oDb As DAO.Database
> | Dim oDbSource As DAO.Database
> | Dim oTbl As DAO.TableDef
> | Dim oTblSource As DAO.TableDef
> |
> | strPass = "thanks"
> |
> | 'dans StrBaseFrontale on trouve le chemin de ma cible style "C:test.mdb"
> | strConnect = "MS Access;pwd=" & strPass & ";DATABASE=" & StrBaseFrontale
> | Set oDb = DBEngine.OpenDatabase(StrBaseFrontale, dbDriverComplete,
> | False, strConnect)
> | Set oDbSource = CurrentDb
> |
> | For Each oTblSource In oDbSource.TableDefs
> | If (oTblSource.Attributes And dbSystemObject) = 0 Then
> | strTemp = strTemp & oTblSource.Name & "|"
> | End If
> | Next
> | oDbSource.Close: Set oDbSource = Nothing
> | Debug.Print strTemp
> |
> | strNomsTables = Split(Left(strTemp, Len(strTemp) - 1), "|")
> | For i = 0 To UBound(strNomsTables)
> | Debug.Print i, strNomsTables(i)
> |
> | 'Initialisation de Table def
> | Set oTbl = oDb.CreateTableDef(strNomsTables(i))
> | Debug.Print "Affectation OK"
> |
> | 'Conection à la Frontale
> | oTbl.Connect = strConnect
> | Debug.Print "Connection OK"
> |
> | 'Désignation de la table à attacher
> | oTbl.SourceTableName = strNomsTables(i)
> | Debug.Print "Désignation OK"
> |
> | 'Modification de Tabledefs et mise à jour de la définition
> | 'C'est ici que cela coince !
> | ' Le moteur de base de données Microsoft Jet n'a pas pu
> | trouver l'objet 'Nom_de_la_table'.
> | ' Assurez-vous que l'objet existe et que vous avez
> | correctement saisi son nom et son chemin d'accès.
> | oDb.TableDefs.Append oTbl
> | Debug.Print "Definition OK"
> | Next i
> |
> | oDb.TableDefs.Refresh
> |
> | Exit_LierTablesDorsale:
> | Set oDbSource = Nothing
> | Set oTbl = Nothing
> | Set oDb = Nothing
> | Exit Function
> |
> | Err_LierTablesDorsale:
> | Select Case Err.Number
> | Case 3012
> | Debug.Print Err.Number, Err.Description
> | Resume Next
> |
> | Case Else
> | Debug.Print Err.Number, Err.Description
> | TraiteErreur Err.Number, "LierTablesDorsale :" & vbCr &
> | Err.Description
> | Resume Exit_LierTablesDorsale
> | End Select
> |
> | End Function
> |
> | [/CODE]
> |
> | Merci pour toutes vos contributions.
> |
>
>
***** BONJOUR A TOUS ****
Merci 3stone !
Où a t'on souvent la tête quand on a un problème ?
Je voudrais apporter une précision :
Le but de ma procédure est de créer les liens dans la frontale en étant dans
la dorsale. "Créer les liens à distance" puis, plus tard vérifier leur
effectivité à l'ouverture de la base frontale.
De la frontale, aucun problème puisque la procédure origale récupérée dans
l'aide fonctionne bien.
Pour ta procédure 3stone, je l'incrit tout de suite dans le autoxec de ma
base frontale puisque tu confirmes qu'elle est la meilleure et la plus rapide.
Merci encore.
"3stone" a écrit :
> Bonjour *aussi* !
>
>
> Pour réattacher tes tables, tu peux utiliser ceci:
> http://www.3stone.be/access/articles.php?lng=fr&pg(
>
>
> --
> A+
> Pierre (3stone) Access MVP
> Perso: http://www.3stone.be/
> MPFA: http://www.mpfa.info/ (infos générales)
>
>
>
>
> "William Kameron"
> |A partir de ma base de données, je voudrais créer par VBA tous les liens des
> | tables dans une base de donnée frontale:
> | J'ai esayé de modifier le code qui fait l'inverse que j'ai pris dans l'aide
> | d'access.
> |
> | Mais depuis je suis bloqué au niveau de cette erreur :
> |
> | 3011
> | Le moteur de base de données Microsoft Jet n'a pas pu trouver l'objet
> | 'Accréditations sur opérations de production'. Assurez-vous que l'objet
> | existe et que vous avez correctement saisi son nom et son chemin d'accès.
> |
> | Voici du reste le code assoccié :
> |
> | [CODE]
> | Function LierTablesDorsale(StrBaseFrontale As String) As Boolean
> | On Error GoTo Err_LierTablesDorsale
> | Dim strMotPasse As String
> | Dim strConnect As String
> | Dim strNomsTables() As String
> | Dim strTemp As String
> | Dim i As Integer
> | Dim oDb As DAO.Database
> | Dim oDbSource As DAO.Database
> | Dim oTbl As DAO.TableDef
> | Dim oTblSource As DAO.TableDef
> |
> | strPass = "thanks"
> |
> | 'dans StrBaseFrontale on trouve le chemin de ma cible style "C:test.mdb"
> | strConnect = "MS Access;pwd=" & strPass & ";DATABASE=" & StrBaseFrontale
> | Set oDb = DBEngine.OpenDatabase(StrBaseFrontale, dbDriverComplete,
> | False, strConnect)
> | Set oDbSource = CurrentDb
> |
> | For Each oTblSource In oDbSource.TableDefs
> | If (oTblSource.Attributes And dbSystemObject) = 0 Then
> | strTemp = strTemp & oTblSource.Name & "|"
> | End If
> | Next
> | oDbSource.Close: Set oDbSource = Nothing
> | Debug.Print strTemp
> |
> | strNomsTables = Split(Left(strTemp, Len(strTemp) - 1), "|")
> | For i = 0 To UBound(strNomsTables)
> | Debug.Print i, strNomsTables(i)
> |
> | 'Initialisation de Table def
> | Set oTbl = oDb.CreateTableDef(strNomsTables(i))
> | Debug.Print "Affectation OK"
> |
> | 'Conection à la Frontale
> | oTbl.Connect = strConnect
> | Debug.Print "Connection OK"
> |
> | 'Désignation de la table à attacher
> | oTbl.SourceTableName = strNomsTables(i)
> | Debug.Print "Désignation OK"
> |
> | 'Modification de Tabledefs et mise à jour de la définition
> | 'C'est ici que cela coince !
> | ' Le moteur de base de données Microsoft Jet n'a pas pu
> | trouver l'objet 'Nom_de_la_table'.
> | ' Assurez-vous que l'objet existe et que vous avez
> | correctement saisi son nom et son chemin d'accès.
> | oDb.TableDefs.Append oTbl
> | Debug.Print "Definition OK"
> | Next i
> |
> | oDb.TableDefs.Refresh
> |
> | Exit_LierTablesDorsale:
> | Set oDbSource = Nothing
> | Set oTbl = Nothing
> | Set oDb = Nothing
> | Exit Function
> |
> | Err_LierTablesDorsale:
> | Select Case Err.Number
> | Case 3012
> | Debug.Print Err.Number, Err.Description
> | Resume Next
> |
> | Case Else
> | Debug.Print Err.Number, Err.Description
> | TraiteErreur Err.Number, "LierTablesDorsale :" & vbCr &
> | Err.Description
> | Resume Exit_LierTablesDorsale
> | End Select
> |
> | End Function
> |
> | [/CODE]
> |
> | Merci pour toutes vos contributions.
> |
>
>
Salut,
"William Kameron"
| En fait, je voudrais réaliser par cette fonction, l'équivalent de
| "fractionner une base de données" sauf qu'au final, je souhaiterais trier en
| sous ensemble ce qui doit être envoyé dans la base frontale.
|
| Cela pourrait me permettre de créer une base frontale différente pour chacun
| des modules de l'application du style : Comptabilité, Editions, etc.
Perso, il ne m'est jamais venu à l'idée de me placer dans la dorsale
pour lier des tables ;-))
Quant à "programmer" un fractionnement frontale/dorsale ou la frontale
aurait un contenu "à la demande", me laisse perplexe...
Tu peux avoir raisonnablement deux ou trois variante d'une frontale.
Au départ d'une frontale complète, tu élimines les éventuels formulaires
et tables(liées) non désirés et le plus gros est fait.... tu crées ensuite les
copies selon les destinataires.
Avec le code indiqué, chacun pourra se relier à "ses" tables de la dorsale.
Jusqu'à Access 2003, il aurait fallu passer plus simplement par la sécurité
au niveau utilisateur pour fixer ces droits réduits... mais...
--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)
Salut,
"William Kameron"
| En fait, je voudrais réaliser par cette fonction, l'équivalent de
| "fractionner une base de données" sauf qu'au final, je souhaiterais trier en
| sous ensemble ce qui doit être envoyé dans la base frontale.
|
| Cela pourrait me permettre de créer une base frontale différente pour chacun
| des modules de l'application du style : Comptabilité, Editions, etc.
Perso, il ne m'est jamais venu à l'idée de me placer dans la dorsale
pour lier des tables ;-))
Quant à "programmer" un fractionnement frontale/dorsale ou la frontale
aurait un contenu "à la demande", me laisse perplexe...
Tu peux avoir raisonnablement deux ou trois variante d'une frontale.
Au départ d'une frontale complète, tu élimines les éventuels formulaires
et tables(liées) non désirés et le plus gros est fait.... tu crées ensuite les
copies selon les destinataires.
Avec le code indiqué, chacun pourra se relier à "ses" tables de la dorsale.
Jusqu'à Access 2003, il aurait fallu passer plus simplement par la sécurité
au niveau utilisateur pour fixer ces droits réduits... mais...
--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)
Salut,
"William Kameron"
| En fait, je voudrais réaliser par cette fonction, l'équivalent de
| "fractionner une base de données" sauf qu'au final, je souhaiterais trier en
| sous ensemble ce qui doit être envoyé dans la base frontale.
|
| Cela pourrait me permettre de créer une base frontale différente pour chacun
| des modules de l'application du style : Comptabilité, Editions, etc.
Perso, il ne m'est jamais venu à l'idée de me placer dans la dorsale
pour lier des tables ;-))
Quant à "programmer" un fractionnement frontale/dorsale ou la frontale
aurait un contenu "à la demande", me laisse perplexe...
Tu peux avoir raisonnablement deux ou trois variante d'une frontale.
Au départ d'une frontale complète, tu élimines les éventuels formulaires
et tables(liées) non désirés et le plus gros est fait.... tu crées ensuite les
copies selon les destinataires.
Avec le code indiqué, chacun pourra se relier à "ses" tables de la dorsale.
Jusqu'à Access 2003, il aurait fallu passer plus simplement par la sécurité
au niveau utilisateur pour fixer ces droits réduits... mais...
--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)
Salut,
"William Kameron"
|
| STP, As-tu eu la même erreur ? Il y a t'il un moyen de contourner cela ?
Tu parles de :
"Le moteur de base de données Microsoft Jet n'a pas pu trouver l'objet
'Accréditations sur opérations de production'. Assurez-vous que l'objet
existe et que vous avez correctement saisi son nom et son chemin d'accès."
?
Cela ne me dit rien de spécial...
Tu obtiens cela sur quelle version d'OS et d'Access ?
|
| Il y a un avantage : Avec un clic, on recréé TOUT... TOUS, avec les
| dernières versions des éléments.
Et bien, bon courrage pour la suite ;-)
Car lorsque je vois
'dans StrBaseFrontale on trouve le chemin de ma cible style "C:test.mdb"
donc, des chemins "en dur", cela me donne... des raideurs :o)
--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)
Salut,
"William Kameron"
|
| STP, As-tu eu la même erreur ? Il y a t'il un moyen de contourner cela ?
Tu parles de :
"Le moteur de base de données Microsoft Jet n'a pas pu trouver l'objet
'Accréditations sur opérations de production'. Assurez-vous que l'objet
existe et que vous avez correctement saisi son nom et son chemin d'accès."
?
Cela ne me dit rien de spécial...
Tu obtiens cela sur quelle version d'OS et d'Access ?
|
| Il y a un avantage : Avec un clic, on recréé TOUT... TOUS, avec les
| dernières versions des éléments.
Et bien, bon courrage pour la suite ;-)
Car lorsque je vois
'dans StrBaseFrontale on trouve le chemin de ma cible style "C:test.mdb"
donc, des chemins "en dur", cela me donne... des raideurs :o)
--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)
Salut,
"William Kameron"
|
| STP, As-tu eu la même erreur ? Il y a t'il un moyen de contourner cela ?
Tu parles de :
"Le moteur de base de données Microsoft Jet n'a pas pu trouver l'objet
'Accréditations sur opérations de production'. Assurez-vous que l'objet
existe et que vous avez correctement saisi son nom et son chemin d'accès."
?
Cela ne me dit rien de spécial...
Tu obtiens cela sur quelle version d'OS et d'Access ?
|
| Il y a un avantage : Avec un clic, on recréé TOUT... TOUS, avec les
| dernières versions des éléments.
Et bien, bon courrage pour la suite ;-)
Car lorsque je vois
'dans StrBaseFrontale on trouve le chemin de ma cible style "C:test.mdb"
donc, des chemins "en dur", cela me donne... des raideurs :o)
--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)