DATAREPORT DYNAMIQUE

cs_olivier42 Messages postés 22 Date d'inscription jeudi 17 octobre 2002 Statut Membre Dernière intervention 3 juillet 2003 - 15 déc. 2002 à 18:49
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
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/2273-datareport-dynamique

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
Azwinek Messages postés 13 Date d'inscription lundi 26 juin 2006 Statut Membre Dernière intervention 18 avril 2007
7 févr. 2007 à 20:56
salut
merci pour la reponce

mais pour une datareport dynamique des zones de textes sont créer automatiquement selon les données.
ce que je voulai c'est par exemple: mettre en gras les zones de textes ou il y le recordset ex:"Jack".
et si tu as un exemple voici mon adress : azprogway@hotmail.com
cs_spawn Messages postés 8 Date d'inscription mercredi 26 décembre 2001 Statut Membre Dernière intervention 28 mai 2005
4 févr. 2007 à 18:23
'lut

oui il paraît qu'il sert pas mal, et je suis même encore surpris près de 5 ans après que MS n'ai pas encore trouvé une façon simple de faire ce genre de truc.

Bref revenons en à ta question : qu'entends tu par faire un critère sur les champs textes ?
si tu parles d'en masquer ou d'en afficher certains en fonction des tes choix initiaux à mon avis avec un if à l'intèrieur de la boucle For intCtrl = 1 To .Count en rajoutant un visible=false ou un truc du genre devrait aller .

Voilà j'espère avoir répondu à ta question ;-)
Azwinek Messages postés 13 Date d'inscription lundi 26 juin 2006 Statut Membre Dernière intervention 18 avril 2007
4 févr. 2007 à 14:28
salut ,
merci pour le code simple et util ..
mais est ce qu'on peut faire des critére sur les champs texte de datareport , car j'import des données depuis une base access mais on faisant certain critaire avant de les affichés et merci.
samatour Messages postés 3 Date d'inscription vendredi 19 août 2005 Statut Membre Dernière intervention 23 avril 2006
18 juil. 2006 à 01:58
Salut spawn merci pour le code il m'a permis de régler quelques soucis que j'avais avec mon datareport
BOHLERE Messages postés 1 Date d'inscription lundi 10 avril 2006 Statut Membre Dernière intervention 12 avril 2006
12 avril 2006 à 20:24
Franchement ton code est super mes je bosse encore sur ca car j'utilise une BD mysql
cs_kikau Messages postés 3 Date d'inscription mardi 21 juin 2005 Statut Membre Dernière intervention 15 novembre 2006
22 juin 2005 à 15:42
merci spawn, ton code m'est d'une grande utilité. je bosse sur un projet je suis amené à éditer des états. une fois de plus merci.
medaz Messages postés 22 Date d'inscription mardi 14 janvier 2003 Statut Membre Dernière intervention 9 mai 2005
18 avril 2005 à 20:26
merci spawn pour le code ca va boucoup m'aide

pour KAZIMIR je ne suis pas sur mais essaye une de ces methode : pour les table [Tbl_Nom] je pense que ca va marcher ci non 'Tbl_Nom' ou "Tbl_Nom"
cs_kazimir Messages postés 26 Date d'inscription mercredi 23 octobre 2002 Statut Membre Dernière intervention 4 novembre 2008
7 avril 2004 à 14:04
salut ,
ce petit code est super, c'est pile poil ce qu'il me faut.
j'ai tenté de le mettre a ma sauce, mais il marche po :'-(

voici mon adaptation :
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:\Documents and Settings\Administrateur.TIPI\Bureau\db_defect.mdb;"

With cmd
.ActiveConnection = cn
.CommandType = adCmdText
.CommandText = "Select NuM, Section from [ARH_defect]"
.Execute
End With

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

End Sub

La seule chose que j'ai modifiée, c'est le chemin de la data base et la requete sql.

Mon souci, c'est que vb me renvoi une erreur dans la requete sql.

J'ai essayé de changer le nom de la table avec un nom sans caractere spéciaux comme "_", ca fonctionne.

Pareil, dans les noms des champs, j'ai plusieurs nom comprenant des "_" ( indispensable pour mon traitement).

Si quelqu'un peut me donner la requete que je dois utiliser pour que ca fonctionne, je suis preneur.

D'avance merci.

Kazzz
cs_nicolasheurtevin Messages postés 88 Date d'inscription samedi 8 février 2003 Statut Membre Dernière intervention 29 août 2006
30 sept. 2003 à 15:38
Bonjour,

Je travaille actuellement sur une petit appli qui permet de faire des
jaquettes de CD, j'utilise donc un datareport. Par ailleurs je
n'utilise pas de base de données mais il semble que le datareport
exige une source de données.

Ma question est la suivante : comment utiliser un datareport sans
définir de source de données ?

Merci par avance

Nicolas
cs_olivier42 Messages postés 22 Date d'inscription jeudi 17 octobre 2002 Statut Membre Dernière intervention 3 juillet 2003
15 déc. 2002 à 18:49
merci :)
Rejoignez-nous