Peut-on utisiser un état access dans vb6?

cs_minimoyz Messages postés 2 Date d'inscription jeudi 9 décembre 2010 Statut Membre Dernière intervention 17 juin 2011 - 16 juin 2011 à 10:15
praetor62 Messages postés 35 Date d'inscription dimanche 19 décembre 2010 Statut Membre Dernière intervention 14 juillet 2011 - 22 juin 2011 à 09:31
Bonjour ,

Je réalise un projet VB6 relié en ADO à une base de données, et je souhaiterai utiliser un état de ma base de donnée dans mon projet vb6.
Mon but serait de pouvoir consulter et imprimer mon état à partir du mini logiciel que je suis en train de créer.

J'ai déjà effectué des recherches perso sur des forum mais je n'ai trouvé que des solutions et des codes pour VBA Access, or mon projet est bien en VB6!
Je dois terminer ce projet pour fin juin et je suis bel et bien bloquée

Merci d'avance pour votre aide.

3 réponses

praetor62 Messages postés 35 Date d'inscription dimanche 19 décembre 2010 Statut Membre Dernière intervention 14 juillet 2011
16 juin 2011 à 20:38
Salut,
^^ J'ai exactement le même soucis ! je dois faire un logiciel de réservation de places pour un stage.. et je suis tout seul devant ce pb..

Ce qu'il serait bien de pouvoir faire (je pense que tu es d'accord avec moi) c'est de pouvoir :

1) créer un état dans Access qui serais présenté comme pour une facture (pour moi par exemple)
2) Pouvoir imprimer l’état qui contiendra les enregistrements de la bdd qu'on veux => qui sont dans la form vb6 qu'on a sous les yeux. (par exemple un ensemble de textbox etc etc)

Si tu veux j'ai un code pour faire un "apercu avant impression" mais je ne sais pas si il est correct et si il répond à tes/nos attentes


On Error Resume Next
Dim A As Access.Application
Set A = CreateObject("Access.Application")
A.OpenCurrentDatabase App.Path & "\Nom_de_la_base.mdb"
A.DoCmd.OutputTo acOutputReport, "Nom de l'état", acFormatHTML, App.Path & "\tmp.html"
A.Quit
DoEvents
Do
    wb.Navigate App.Path & "\tmp.html"
    DoEvents
Loop Until wb.ReadyState = READYSTATE_COMPLETE
Me.WindowState = 2
Do
    Err.Clear
    wb.ExecWB OLECMDID_PRINTPREVIEW, OLECMDEXECOPT_DODEFAULT
    DoEvents
Loop Until Err.Number <> -2147221248
Fimpression.WindowState = 0
Me.WindowState = 0

Je crois qu'il s’exécute avec le composant Microsoft internet control
0
cs_minimoyz Messages postés 2 Date d'inscription jeudi 9 décembre 2010 Statut Membre Dernière intervention 17 juin 2011
17 juin 2011 à 22:06
salut ! merci de ta réponse trés réactive ^^
donc moi en fait ce que je veux faire sa serait un état récapitulatif de tous les clients de la base de données (avec leurs coordonnées et tout ça...)
en effet ton code ressemble fort à ce qu'il nous faudrait, il ne manque plus que l'impression.
Je ne sais pas quel est ton niveau d'étude, mais tu as appris ce code en cours? (je veux parler du code qui gère access par vb6)

La solution idéal serait de pouvoir directement transférer notre état dans vb mais bon je pense que je rêve ^^

Sinon j'ai tenté quelquechose à défaut d'utiliser l'état access, en fait sa reprend un peu ton idée de code sauf que je le gère par excel. J'ai donc fais un peu comme une "fiche-type" dans excel (en gros toute la mise en forme, les en-têtes et tout), puis par une requete je rempli les cellules.
J'ai pris ce code sur une appli que mon maitre de stage avait lui meme fait quand il était étudiant ^^
il y a aussi un morceau de code pour la sauvegarde et l'impression du document excel.
Je n'ai pas pu tout tester donc je ne sais pa si ce code fonctionne

Ma prof doit passer me voir lundi je lui demanderai pour notre probleme access on sait jamais, car excel c'est bien joli mais bon j'ai commencé avec access bon j'aurais bien aimé tout faire avec access ^^

je te laisse le code vb qui gére excel si tu veux y jeter un oeil, il y a beaucoup de fonctions et de variables publiques donc je copie tout pour que tu comprenne mieu ^^

Public rqsql As String

'Nom de la sauvegarde :
Public Sauvegarde As String
Dim dt As String

Public Sub Edit_fichecli()

'Déclaration des variables :
Dim Appli As Excel.application
Dim Feuille As Excel.Workbook
Dim Classeur As Excel.Worksheet
Dim cucli As Recordset

'Ouverture du logiciel puis d'un classeur :
Set Appli = CreateObject("excel.Application")
Set Feuille = Appli.Workbooks.Open(App.Path & "\excel\clients\fiche_client.xlsx")
Set Classeur = Feuille.Sheets(1)

'Faire la requête :
requeteclient cucli.Open rqsql, bdGestion

'Affichage de l'agent dans Excel :
Classeur.Cells(1, 1) = cucli!societe
Classeur.Cells(5, 3) = cucli!siret
Classeur.Cells(5, 5) = cucli!ape
Classeur.Cells(8, 3) = cucli!adresserue
Classeur.Cells(12, 3) = cucli!adressecp
Classeur.Cells(14, 3) = cucli!adresseville
Classeur.Cells(17, 3) = cucli!telpro
Classeur.Cells(19, 3) = cucli!telfax
Classeur.Cells(22, 3) = cucli!mail
Classeur.Cells(25, 3) = cucli!datecloture
Classeur.Cells(25, 6) = cucli!codetypeclient
Classeur.Cells(28, 3) = cucli!codetypeimposition
Classeur.Cells(30, 3) = cucli!codecatimposition
Classeur.Cells(33, 4) = cucli!codetyperegime
Classeur.Cells(35, 5) = cucli!periodicite

'Mise en forme d'un nom de fichier pour la sauvegarde :
dt = Day(Date) & "_" + Month(Date) & "_" + Year(Date) + " à " + Hour(Time) & "h" + Minute(Time)
cucli.MoveFirst
Sauvegarde = "\Excel\clients\Fiche client '" + cucli!societe + "'" + ".xls"
'Sauvegarde des informations sous un autre nom :
Feuille.SaveAs App.Path & Sauvegarde

'Demande si l'utilisateur veut imprimer le fichier :
If Print_Demande = True Then
  Feuille.PrintOut
End If
'Fermeture de Excel :
Feuille.Close

'Message à l'utilisateur que l'enregistrement a bien été fait :
Print_Message
End Sub

Public Sub requeteclient()

rqsql = "select client.*, codetyperegime,periodicite from client,payer "
rqsql = rqsql + "where client.numclient=payer.numclient and "
rqsql = rqsql + "client.numclient='" + frmeditfichecli.lblnumcli + "'"


bdGestion.Execute (rqsql)

End Sub

Public Function Print_Demande() As Boolean
Message = "Voulez-vous imprimer " & App.Path & Sauvegarde & " ?"
Information = MsgBox(Message, vbYesNo, "Impression papier")
If Information = 6 Then
  Print_Demande = True
Else
  Print_Demande = False
End If
End Function

Public Sub Print_Message()
Message = "Fichier sauvegarder dans " & App.Path & Sauvegarde
MsgBox (Message)
End Sub

0
praetor62 Messages postés 35 Date d'inscription dimanche 19 décembre 2010 Statut Membre Dernière intervention 14 juillet 2011
22 juin 2011 à 09:31
Salut,

J'ai pas encore bien réfléchis à ton code, mais celui que je t'ai passé marche sauf que.. oui il faut un "sauf que"..
Quand mon Etat s'affiche dans cette fenêtre, toute la présentation, mise en forme etc que j'avais passé du temps à lui donner ben.. je l'ai plus.. Tout ce que j'ai c'est un Etat tout condensé, sans mes cadres, il manque parfois même la fin de mots sur le coté de la page etc... c'est bizarre..

Sinon => je suis en première année d’École d'ingé informatique et ce qu'on a vu en cour ne me permet pas de savoir comment on gère un état Access par VB. D'autant plus que comme je travail pour une association pour mon stage, je n'ai pas de maitre de stage qui travail Dans l'informatique C'est donc le pourquoi je suis sur des forums comme celui ci : Pour apprendre un max de choses.

Ps : le code que je t'ai filé c'est un ami qui l'avait trouvé pour un projet personnel mais chez lui il marchait.. essaye toi pour voir si ça marche avec ton état
0
Rejoignez-nous