Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > VBA Access
VBA Access Le forum pour les questions relatives au code VBA sous Access, et à son environnement de développement VBE.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 29/11/2010, 12h50   #1
Invité de passage
 
Inscription : novembre 2010
Messages : 9
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 9
Points : 0
Points : 0
Bonjour,

Je suis en train de travailler sur un projet de rédaction de contrat de travail, liant à la fois des infos de ma base de données SQL de la paie et des saisies variables tel que le nom de la personne remplacée, les horaires...

Ma base de données est sous sql-server, et je souhaite pour le moment attaquée la table salarie (champs ent_id, sal_matr, sal_val_nom, sal_prenom pour code société, matricule, nom et prenom).

Dans un 1er temps, je souhaite interrogé cette table et récupérer les informations d'une personne, à partir d'une table alimentée par un formulaire (table Variable avec champs VarSoc, VarMatri pour le code société et le matricule). Les informations seront insérer dans une autre table TmpSal (avec champs Soc, Matri, Nom, Prenom).

Voici le code de j'utilise, mais malheuresement rien ne se passe :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
Public Sub Demande()
 
Dim oCnSQLSvr As ADODB.Connection, rsSqlSvr As ADODB.Recordset
Dim oCnAccess As ADODB.Connection, rsAcc As ADODB.Recordset
Dim tab1() As Variant, tab2() As Variant, i As Integer, j As Integer
Dim strSql As String
 
' Réutilise connexion de la base de donnée Access
Set oCnAccess = CurrentProject.Connection
 
' Nouveau recordset pour table Access
Set rsAcc = New ADODB.Recordset
rsAcc.CursorLocation = adUseClient
 
' Ouvre recordset sur table Access et fournit
' les paramètres du recordset via la méthode Open
rsAcc.Open "TmpSal", oCnAccess, adOpenStatic, adLockOptimistic, adCmdTable
 
' Nouvelle connexion SQL Server
Set oCnSQLSvr = New ADODB.Connection
 
' Etablit connexion à l'aide d'une chaîne de connexion
oCnSQLSvr.Open "Driver={SQL Server};server=XX;UID=sa;PWD=YY;database=ZZ;"
 
' Nouveau recordset pour SQL Server
Set rsSqlSvr = New ADODB.Recordset
 
' Paramètres du recordset
' (on ne les fournira pas à la méthode open)
rsSqlSvr.CursorLocation = adUseClient
rsSqlSvr.CursorType = adOpenStatic
rsSqlSvr.LockType = adLockReadOnly
Set rsSqlSvr.ActiveConnection = oCnSQLSvr
 
' Liste des codes clients à chercher
tab1 = Array(VarSoc)
tab2 = Array(VarMatri)
 
For i = LBound(tab1) To UBound(tab1)
For j = LBound(tab2) To UBound(tab2)
 
    ' Instruction SQL SELECT sur la table dbo.Salarie du serveur SQL Server
    strSql = "SELECT ent_id, sal_matr, sal_val_nom, sal_prenom FROM Salarie " & _
             "WHERE ent_id='" & tab1(i) & "' AND sal_matr='" & tab2(j) & "'"
 
    ' Ouvre recordset sur Instruction SQL SELECT
    rsSqlSvr.Open strSql
    If Not rsSqlSvr.EOF Then
       ' Ajoute un enregistrement à la table Access
       rsAcc.AddNew
       rsAcc.Fields("Soc") = rsSqlSvr.Fields("Ent_id")
       rsAcc.Fields("Matri") = rsSqlSvr.Fields("Sal_matr")
       rsAcc.Fields("Nom") = rsSqlSvr.Fields("Sal_val_nom")
       rsAcc.Fields("Prenom") = rsSqlSvr.Fields("Sal_prenom")
       rsAcc.Update
    End If
    rsSqlSvr.Close
Next
Next
 
'Fermeture et libération des variables objets
oCnSQLSvr.Close
Set oCnSQLSvr = Nothing
 
rsAcc.Close
Set rsAcc = Nothing
Set oCnAccess = Nothing
 
End Sub
Avez-vous une idée ? Merci

En fait, le problème est que je ne récupère pas les valeurs de VarSoc et de VarMatri dans mon select. Si je mets des valeurs en dur, la table se charge.
coolchti est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2010, 17h55   #2
Invité de passage
 
Inscription : novembre 2010
Messages : 9
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 9
Points : 0
Points : 0
A clouter, j'ai changé mon fusil d'épaule :

J'ai supprimé la phase "Variable" et je passe par des requetes sql...
coolchti est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h34.


 
 
 
 
Partenaires

Hébergement Web