Quel fichier me manque-t-il pour que mon programme puisse imprimer un Datareport

bibilafrayeur Messages postés 59 Date d'inscription jeudi 26 décembre 2002 Statut Membre Dernière intervention 26 juillet 2007 - 17 avril 2004 à 21:22
bibilafrayeur Messages postés 59 Date d'inscription jeudi 26 décembre 2002 Statut Membre Dernière intervention 26 juillet 2007 - 17 avril 2004 à 21:35
Bonjour tout le monde et merci de votre aide.

J'ai enfin bouclé mon petit logiciel qui consiste à enregistrer des données dans une base access puis à les édité grace à un DATAREPORT en programmation (jai eu du mal mais ça marche bien).

Ensuite je lance l'assistant d'empaquetage & déploiement pour faire un "SETUP" de mon programme.

J'installe donc le logiciel sur un poste client qui ne possède pas Visual Basic, je lance programe.exe je suis content tout marche .... tout SAUF l'impression sur le DATAREPORT !!!!! Quand je clique sur mon bouton imprimer, il me met ce message d'erreur :
---------------------------------
Erreur D'éxécution 430
La classe ne gère pas Automation ou l'interface attendue
---------------------------------

Ne sachant que faire j'installe Microsoft Data Access Component 2.8, je ne sais pas s'il y'a un rapport mais bon .... dès que je clique sur imprimer toujours un message d'erreur (il a changé par contre) :
--------------------------------
Erreur d'exécution 713
Erreur définie par l'application ou par l'objet
--------------------------------

Alors je me dit ça doit être ma source qui est foireuse .... j'installe Visual Basic 6 sur le poste client, avec le service Pack 6. Puis avant de trifouiller la source je relance une dernière fois programe.exe et Ô miracle l'impression fonctionne !! C'est à n'y rien comprendre, s'il faut se balader avec VB6 pour pouvoir lancé mon logiciel bonjour la galère !!

Alors je voudrais savoir si vous avez une solution à ce problème ..... voici comment je lance mon DATAREPORT au cas où :
-------------------------------------------------------------
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim cmd As New ADODB.Command

'Connection et Requete pour le datareport
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & v_acces_base

With cmd
.ActiveConnection = cn
.CommandType = adCmdText
If liste_type_impression.ItemData(liste_type_impression.ListIndex) = 2 Then
'Si je choisi speaker alors pas de trie dans la catégorie.CommandText "SELECT * FROM t_inscription INNER JOIN t_categories ON t_inscription.id_categorie t_categories.id WHERE(t_inscription.id_course)=" & v_id_course & " ORDER BY t_inscription.dossard"
.Execute
End With

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

With datareport_signature
.Hide
.Title = v_nom_projet
Set .DataSource = rs
.DataMember = ""

.Sections("Section2").Controls!label_tours.Caption = v_nombre_tour & " " & v_langue_datareport_tour
.Sections("Section2").Controls!label_categorie.Caption = v_nom_categorie
.Sections("Section2").Controls!label_nom_course.Caption = v_nom_course
.Sections("Section2").Controls!label_dossard.Caption = "N°" 'parce que + court
.Sections("Section2").Controls!label_nom.Caption = v_langue_datareport_nom
.Sections("Section2").Controls!label_prenom.Caption = v_langue_datareport_prenom
.Sections("Section2").Controls!label_club.Caption = v_langue_datareport_club
.Sections("Section2").Controls!label_licence.Caption = v_langue_datareport_num_licence
.Sections("Section2").Controls!label_signature.Caption = v_langue_datareport_signature

With .Sections("Section1").Controls

!label1.Caption = " " & Chr(10) & Chr(10) & Chr(10)

!text_dossard.DataMember = ""
!text_dossard.DataField = rs!dossard.Name

!text_nom.DataMember = ""
!text_nom.DataField = rs!nom.Name

!text_prenom.DataMember = ""
!text_prenom.DataField = rs!prenom.Name

!text_club.DataMember = ""
!text_club.DataField = rs!club.Name

!text_licence.DataMember = ""
!text_licence.DataField = rs!numero_licence.Name

End With
'.Sections("Section1").Controls!label1.Caption = rs!nom
'.Orientation = rptOrientLandscape
.Sections("Section3").Controls!label_creation.Caption = v_nom_projet & " **** " & v_langue_datareport_creation
.Orientation = rptOrientPortrait
.Refresh
If v_imprimer_datareport = 1 Then
'.Show
.PrintReport True, rptRangeAllPages
End If
End With
----------------------------------------------------------

Quelqu'un a-t-il une idée à soumettre ???

MERCI beaucoup !

1 réponse

bibilafrayeur Messages postés 59 Date d'inscription jeudi 26 décembre 2002 Statut Membre Dernière intervention 26 juillet 2007
17 avril 2004 à 21:35
Ca y'est j'ai enfin trouvé ........

Je n'y suis pas allé de main morte !! J'ai pris le service pak 6, je l'ai dézippé et j'ai pris toutes les DLL contenues dans le dossier "OS/SYSTEM". J'ai fait un copier/coller vers le répertoire Winnt\System 32 en prenant soin de ne remplacer que les DLL dont la date est inférieur à celles du service pack !!

Et ça marche .... maintenant l'opération est un peu la suivante : Dans une boite de cassoulet, savoir quel est le fayot qui nous fait péter !!! :o))
0
Rejoignez-nous