Datareport dynamique

Soyez le premier à donner votre avis sur cette source.

Snippet vu 17 336 fois - Téléchargée 48 fois

Contenu du snippet

Permet de faire un état dynamique avec le contrôle datareport
Ce code n'ai pas de moi mais vient de chez Krosoft, et fonctionne, je l'ai essayé hier soir, donc si il y en a que ça peut dépanner
Numéro d'article: F18027

Source / Exemple :


'Dans les propriétés du Data Report, changez le nom de l'état en DR.
'
'Placez deux contrôles Label et deux contrôles Textbox de rapport dans la
'section Détail du rapport.
'
'Placez un bouton de commande dans Form1 et nommez-le Command1.
'
'Placez le code suivant dans Form1 :

Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim cmd As New ADODB.Command

Private Sub Command1_Click()
Dim q As Integer
Dim intCtrl As Integer
Dim x As Integer
Dim z As Integer
x = 0
q = 0
z = 0

With DR
.Hide
Set .DataSource = rs
.DataMember = ""
With .Sections("Section1").Controls
For intCtrl = 1 To .Count
If TypeOf .Item(intCtrl) Is RptLabel Then
.Item(intCtrl).Caption = rs.Fields(q).Name & " :"
q = q + 1
End If
If TypeOf .Item(intCtrl) Is RptTextBox Then
.Item(intCtrl).DataMember = ""
.Item(intCtrl).DataField = rs(z).Name
z = z + 1
End If
Next intCtrl
End With
.Refresh
.Show
End With
End Sub

Private Sub Form_Load()

Command1.Caption = "Afficher l'état"

cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=C:\Program Files\Microsoft Visual
Studio\VB98\Nwind.mdb;"

With cmd
.ActiveConnection = cn
.CommandType = adCmdText
.CommandText = "Select Prénom, Nom from Employés"
.Execute
End With

With rs
.ActiveConnection = cn
.CursorLocation = adUseClient
.Open cmd
End With

End Sub

Conclusion :


Modifiez la propriété Data Source dans la chaîne de connexion pour
indiquer le chemin d'accès à votre base de données Northwind.

A voir également

Ajouter un commentaire Commentaires
MWEKASPA Messages postés 7 Date d'inscription vendredi 30 mars 2012 Statut Membre Dernière intervention 3 novembre 2012
2 nov. 2012 à 10:42
bravo! et maintenant comment faire lorqu'on veut proceder aux regroupements des données?
pitchoulweah Messages postés 3 Date d'inscription dimanche 29 juin 2008 Statut Membre Dernière intervention 12 novembre 2011
12 nov. 2011 à 11:11
Salut Spawn,
Est-il possible d'inserrer dynamiquement des images liees a mon recordset dans un datareport? Je suis desempare. Et dire que je suis a la fin de mon projet sur l'edition de badge pour mon etablissement scolaire.
merci de me presenter une illustration si possible.
Merci encore pour tn soutien au forum.

pitchoulweah
cs_rasedra Messages postés 6 Date d'inscription mardi 12 août 2008 Statut Membre Dernière intervention 25 janvier 2010
14 déc. 2009 à 12:51
j'ai essayer ce mais Dans dim cn as ADODB.connection on a erreur type defini par l'utilisateur non défini
Azwinek Messages postés 13 Date d'inscription lundi 26 juin 2006 Statut Membre Dernière intervention 18 avril 2007
8 févr. 2007 à 23:10
'merci pour la reponce.

'mais la boucle fonctionne seulement pour les objets libelés et textes existants
'on ne peut pas faire des critéres sur les textes céer par datareport
For intCtrl = 1 To .Count
If TypeOf .Item(intCtrl) Is RptLabel Then
.Item(intCtrl).Caption = rs(q).Name & " :"
q = q + 1
End If
If TypeOf .Item(intCtrl) Is RptTextBox Then
.Item(intCtrl).DataMember = ""
.Item(intCtrl).DataField = rs(z).Name

'même si j'ai préciser 'Nancy'
'le critére ne s'applique que pour le premier enregistrement
iet met tout les zones de textes en gras
If rs(z) = "Nancy" Then
.Item("Text1").Font.Bold = True
End If
z = z + 1
End If
Next intCtrl

il me semble qu'il n y a pas de solution pour cela mais je vais continuer a chercher
cs_spawn Messages postés 8 Date d'inscription mercredi 26 décembre 2001 Statut Membre Dernière intervention 28 mai 2005
8 févr. 2007 à 09:21
salut

si j'ai bien compris ce que tu souhaitais faire et sachant que je n'ai plus VB je fais ça de tête et je n'ai pas pu tester, mais un truc du genre devrait je pense fonctionner ;-)
tiens moi au courant car je pense que ça pourrait intéresser d'autres personnes :D

@+ bon courage


For intCtrl = 1 To .Count
If TypeOf .Item(intCtrl) Is RptLabel Then
.Item(intCtrl).Caption = rs.Fields(q).Name & " :"
q = q + 1
End If
If TypeOf .Item(intCtrl) Is RptTextBox Then
.Item(intCtrl).DataMember = ""
.Item(intCtrl).DataField = rs(z).Name
'code à insérer
if rs.(z).name="jack" then
.item(intctrl).datafield.text.font.bold = true
end if
'fin du code à insérer
z = z + 1
End If
Next intCtrl
Afficher les 15 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.