Définir en dynamique en VB un nouvel emplacement de la source de données - Cryst

Signaler
Messages postés
4
Date d'inscription
lundi 6 août 2007
Statut
Membre
Dernière intervention
5 février 2010
-
Messages postés
4
Date d'inscription
lundi 6 août 2007
Statut
Membre
Dernière intervention
5 février 2010
-
BONJOUR

J'ai créer un rapport crystal avec une base de données SQL SERVER 2005.
Dans le but de me connecter à plusieurs bases dynamiquement, j'utilise des paramètres de connexion dans VB.


Voici le code :

Private Sub Form_Load()

Dim RepRapport As String

Dim Server As String
Dim Db As String
Dim User As String
Dim Pwd As String

Dim CRApp As CRAXDRT.Application
Dim CRRapport As CRAXDRT.Report


'************* PARAMETRES DYNAMIQUES *************
' ces paramètres vont être initialisés par formulaire

Server = "nom_serveur"
Db = "nom_base"
User = "sa"
Pwd = "sasa"



'************* INSTANTIATION DE L'OBJET APPLICATION *************
Set CRApp = New CRAXDRT.Application

'************* OUVERTURE RAPPORT *************
Set CRRapport = CRApp.OpenReport("C:\rapport.rpt")

'************* TABLES *************
' Pour chaque table du rapport
For i = 1 To CRRapport.Database.Tables.Count
' On connecte la table à la base de données
CRRapport.Database.Tables(i).SetLogOnInfo Server, Db, User, Pwd
Next i


'************* VIEWER *************
Viewer.CRViewer.ReportSource = CRRapport
Viewer.CRViewer.ViewReport



'************* DECHARGEMENT *************
' On décharge la mémoire des objets instanciés précédemment
Set CRApp = Nothing
Set CRRapport = Nothing

End Sub




Malgré les tentatives, le rapport utilise toujours la même base, celle qui a servi pour créer le rapport initial!!!!!


HELP ME PLEASE !!!!!

1 réponse

Messages postés
4
Date d'inscription
lundi 6 août 2007
Statut
Membre
Dernière intervention
5 février 2010
1
j'ai réussi, j'ai modifié le programme:


'************* TABLES *************
' Pour chaque table du rapport
For i = 1 To CRRapport.Database.Tables.Count
' On connecte la table à la base de données
CRRapport.Database.Tables(i).SetLogOnInfo Server, Db, User, Pwd
CRRapport.Database.Tables(i).Location = Trim(Db) + ".dbo." + Trim(CRRapport.Database.Tables(i).Name)
Next i