Bonjour tout le monde, alors voila j'ai un script en VBA, access 2007, et VB version 6.3.
J'ai dans un formulaire une zone de texte ou je saisie une adresse ip, j'aimerais prendre cette valeur, et l'utilisé par la suit dans une chaine de connexion , j'aimerais que la valeur de la zone soit stocké dans chemin1, car seul mon ip va varier et le chemin rester le même, voici ce que j'ai pondu, mais je suis perdu, j'ai essayé plein de truc différents mais sans résultat :
Private Sub valider_Click()
On Error GoTo Err_valider_Click
Dim stDocName As String
Dim stLinkCriteria As String
Const base As String = "\C:\Documents and Settings\baderj\Desktop\Brice\Puces 2010_be.mdb"
Const baseprincipal As String = chemin1 + base
'baseprincipale = "C\Documents and Settings\baderj\Desktop\Brice\Puces 2010_be.mdb"
DoCmd.TransferDatabase acLink, "Microsoft Access", _
baseprincipale, acTable, _
"Client", "Client"
DoCmd.TransferDatabase acLink, "Microsoft Access", _
baseprincipale, acTable, _
"Liste choix", "Liste choix"
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 10 mai 2010 à 16:28
Salut
"j'aimerais que la valeur de la zone" : Zone de quoi ?
Ou est dimensionné Chemin1 ?
Pour qu'il conserve son contenu, il faudra le déclarer en Public dans un Module.
et faire, ua moment opportun
Chemin1 = maTextBox.Text
Const baseprincipal As String = chemin1 + base
A mon avis, tu ne peux pas faire de Const avec un contenu variable - Lapalisse (1470-1525)
Additionner des chaines: pouah
Utilise &
Si Chemin1 contient une adresse IP, chemin1 + base va donner
192.168.1.123\C:\Documents and Settings\baderj\Desktop\Brice\Puces 2010_be.mdb
De toute façon, cela n'est pas une chaine UNC correcte.
- Les noms de machine (ou adresse IP) doivent être précédées de \\
- Tu n'auras accès qu'aux répertoires qui auront été partagés par l'autre machine - impossible donc de fournir un chemin "C:" après \\NomServeur\
Vala
Jack, MVP VB NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Merci de tes réponses, alors je voulais dire "la zone de texte" et oui chemin1 est déclaré en public dans un module :
Option Compare Database
Public chemin1 As String
Et pour l'addition je vais utilisé "&", par contre la zone de texte sera renseigner de l'ip précédé de "\" donc pas de soucie de ce côté.
Problème j'ai essayer et mon code resemble alors à cela :
Option Compare Database
Private Sub valider_Click()
On Error GoTo Err_valider_Click
Dim stDocName As String
Dim stLinkCriteria As String
'Const chemin1 As String = Me!IP.Value
'Const chemin1 As Integer = IP
chemin1 = IP.Texte
Const base As String = "\C:\Documents and Settings\baderj\Desktop\Brice\Puces 2010_be.mdb"
Const baseprincipal As String = chemin1 + base
'baseprincipale = "C\Documents and Settings\baderj\Desktop\Brice\Puces 2010_be.mdb"
DoCmd.TransferDatabase acLink, "Microsoft Access", _
baseprincipale, acTable, _
"Client", "Client"
Mais y me dit que chemin1 doit être une constante en me surlignant le chemin1 précisez ci dessus
hey,
C'est bon j'ai réussi à résoudre mon soucie. Enfin en partie, enfaite pour ce code, je me suis basé sur un script qui existait et qui utilisai une chaine de connexion du type, "\\10.128.12.12\C:\Program Files\...\fichier.mdb".
Seul problème quand j'adapte cette chaine, ca ne marche pas, y me dit que le chemin n'est pas valide, je voudrais savoir comment marquer cela. Je veut chercher la base sur un pc distant, dans un réseau local, dont je ne connais que l'ip.
Merci ^^