Inserer données par ADO dans répertoire sur serveur

P

Pascal76

Guest
Bonjour le forum

Voilà je vous explique mon problème.

Des utilisateurs remplissent par le moyen d'un formulaire des données. Mon but est de transférer les données de la veille dans un fichier qui reste fermé par ADO. Jusque là tout va bien tant que le fichier est sur un répertoire commun et utilisable par tout le monde.

Mais mon but serait que ces données soient transférées sur un répertoire d'un serveur qui n'est accessible que par 1 personne (celle qui gérera les données). J'aimerais si c'est posible indiquer à un moment donné le login et le password de la personne autorisée dans l' ado.connection pour pouvoir copier les données dans ce fichier mais je ne trouve pas la syntaxe.

Merci d'avance aux pros de l'ADO

Pascal
 
M

Michel_M

Guest
Bonsoir Pascal,

tu trouveras la modification ou création d'un mot de passe en ADO sur le "pavé" microsoft: "migration de DAO vers ADO: utilisation de l'ADO avec le fournisseur jet (132 pages)

j'ai trouvé ceci pour sécuriser au niveau du partage, page 7

Dim cnn as ADODB.connection

set cnn=new adodb.connection

cnn.open "provider=microsoft.jet.oledb.4.0;" & _
"data source=. tonfichier;" & _
"jet oledb:database password=ton mdp;"

Par contre je n'ai pas trouvé d'identifiant

en espérant d'avoir été utile

Michel
 
P

Pascal76

Guest
Bonjour Michel

Merci de t'être penché sur le problème. Je vais regarder ce que tu me proposes mais j'ai un peu peur. Le problème avec les répertoires partagés sur serveur c'est que c'est le login de la personne qui donne le droit ou non d'accéder au répertoire. M'enfin je vais essayé avec le mdp.

Merci encore.

Pascal
 
@

@+Thierry

Guest
Bonjour Pascal, Michel, le Forum

Vite fait pendant mon café, Pascal tu ne précises pas ton OS de Serveur (Win 2000 / 2003 ?... Unix)

Perso, je travaille sous Win et je ne vois pas vraiment comment par macro faire changer le Log-In du User sans avoir aucun Pop-Up de changement de User/Password et même si tu y arrivais, si tu as des règles de changements de Password à intervals réguliers...

En fait je calcule toujours le risque, donc au mieux : si tu travailles 100% VBA, par ADO, je ne vois pas vraiment le risque, vu que le User ne verra jamais rien, se sera totalement transparent pour lui il ne saura jamais où se trouve ce répertoire... (tu vérouilles le projet) Moi je laisserai simplement l'accès "Read/Write" à ce fameux répertoire à tous les users susceptibles de faire tourner ton appli... De toutes manières, tu devrais aussi avoir un BackUp, donc franchement le risque est vraiment minime...

Enfin, donc au pire, si jamais tu arrives à faire passer le Log-In / Password du NetWork Admin dans le Code VBA et que tu as à faire à un petit malin dans ta boite... Imagine qu'il connaisse Acyd et qu'il s'octroie le status Admin.... Là les risques sont bien plus craignos....

Enfin ce n'est que mon opinion...

Bonne Journée à tous et toutes
@+Thierry
 
P

Pascal76

Guest
Salut Thierry

Mon OS serveur c'est Windows 200 serveur.

Je comprends ce que tu veux dire mais le problème chez nous n'est pas trop avec les petits malins qui peuvent déplomber les macros mais plutôt d'effacer des répertoires par inadvertance.

En fait plusieurs personnes rempliront les données mais une seule en fera les stats. Donc je désirais si c'etait possible alimenter un fichier qui soit directement sur le répertoire personnel de la personne et non sur un répertoire commun à toute la boite.

Pour le backup pas de problèmes on fait attention à ce niveau mais je peux encore perdre une journée de job . M'enfin c'est mieux que rien.

Merci pour tes remarques.

Pascal
 
@

@+Thierry

Guest
Re Pascal, Michel, le Forum

Je pense que tu es admin sous Win 2000 Server, tu peux paramétrer l'accès à ce répertoire en différents niveaux (de mémoire... suis encore à la maison là... lol):

Full Control
Modify
Write
Read

(il doit y en avoir d'autres...)

A mon avis le Read/Write ne permet rien d'autres que de mettre à jour un fichier ou d'en créer un (mais pas de supprimer des répertoires, ni même des fichiers)

Bon Journée (suis à la bourre lol)
@+Thierry
 
M

Michel_M

Guest
Bonjour Pascal, Thierry, Forum

Rien à Proposer puisqu'il s'agit d'un pb Win 2000 qui me dépasse...

Ce qui serait sympa, Pascal, c'est de copier-coller ton listing d'écriture ADO
car je bosse là-dessus. Si ca t'interesse, j'avais pondu pour moi une maquette que Thierry avait vu.

Quant à ADO, je laisse tomber pour DAO car je ne travaille qu'avec office: + rapide, + de docs, + de bibliothèque, on peut ouvrir plusieurs bases de données (sous XL: plusieurs classeurs)


A+

Michel
 
P

Pascal76

Guest
Re bonjour

Michel je te donne mon code si cela t'interresse bien qu'il n'y ait rien de top dedans.
Il faut juste savoir que mes feuilles ont un nom identique dans les 2 classeurs.

Sub ExporterDonnees()

Dim objConn As ADODB.Connection
Dim szConnect As String
Dim szSQL As String
Dim MaDate As Date
Dim MonHeure As Date
Dim MonNom As String
Dim monid As String
Dim monpwd As String

szConnect = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & _
"\\sv_fichiers\commun\partage de fichiers entre services\Accueil\Stats\Stats.xls" & ";" & _
"Extended Properties=""Excel 8.0;HDR=No;"";"

Set objConn = New ADODB.Connection
objConn.Open szConnect

For Each ws In Worksheets

If ws.Name = "Accueil" Or ws.Name = "Telephone" Then
Mafeuille = ws.Name
MaLigne = Workbooks("AccueilCatherine.xls").Sheets(Mafeuille).Range("A65536").End(xlUp).Row
For x = 2 To MaLigne
If Sheets(Mafeuille).Range("A" & x) <> Date Then
MaDate = Sheets(Mafeuille).Range("A" & x)
MonHeure = Sheets(Mafeuille).Range("B" & x)
MonNom = Sheets(Mafeuille).Range("C" & x)
szSQL = "INSERT INTO [" & Mafeuille & "$] " & _
"VALUES ('" & MaDate & "', '" & MonHeure & "', '" & MonNom & "')"
objConn.Execute szSQL, , adCmdText Or adExecuteNoRecords
Else
Exit For
End If
Next x
Application.ScreenUpdating = False
For x = MaLigne To 2 Step -1
If Sheets(Mafeuille).Range("A" & x) <> Date Then Sheets(Mafeuille).Rows(x).Delete
Next
Application.ScreenUpdating = True
End If
Next ws
objConn.Close
Set objConn = Nothing

End Sub

Mersi de t'être penché sur le problème

Pascal
 

Discussions similaires

Statistiques des forums

Discussions
314 162
Messages
2 106 601
Membres
109 637
dernier inscrit
lafforest