OVH Cloud OVH Cloud

Impression d'étiquettes

10 réponses
Avatar
Alain Ménard
Bonsoir,

Je dois impérativement imprimer des étiquettes avec VB à partir d'une base
Access.

Les bases Access ce n'est pas un souci pour moi, mais il semblerait que VB
soit totalement incapable de générer des étiquettes.

Alors je me pose la question suivante :

Ya t'il une astuce qui m'a échappé ?

Peut-on imaginer que VB puisse lancer un Etat Access 2000 basé sur une
requête.

Comme mes fichiers sont des fichiers Access, arriver à lancer un état Access
serait une solution qui me satisferait.

Toute aide est la bienvenue.

Merci

--
Amicalement

Alain

10 réponses

Avatar
Quasimodo
Alain Ménard explained on 11/5/2004 :
Bonsoir,

Je dois impérativement imprimer des étiquettes avec VB à partir d'une base
Access.

Les bases Access ce n'est pas un souci pour moi, mais il semblerait que VB
soit totalement incapable de générer des étiquettes.

Alors je me pose la question suivante :

Ya t'il une astuce qui m'a échappé ?

Peut-on imaginer que VB puisse lancer un Etat Access 2000 basé sur une
requête.

Comme mes fichiers sont des fichiers Access, arriver à lancer un état Access
serait une solution qui me satisferait.

Toute aide est la bienvenue.

Merci


bonjour,
oui vb peut très bien lancer un état access.

@+Quaz

--
This is an automatic signature of MesNews.
Site : http://mesnews.no-ip.com
Avatar
Giques
Merci Quaz,

Mais comment fait-on ?

@+

Giques
"Quasimodo" a écrit dans le message de news:

Alain Ménard explained on 11/5/2004 :
> Bonsoir,
>
> Je dois impérativement imprimer des étiquettes avec VB à partir d'une


base
> Access.
>
> Les bases Access ce n'est pas un souci pour moi, mais il semblerait que


VB
> soit totalement incapable de générer des étiquettes.
>
> Alors je me pose la question suivante :
>
> Ya t'il une astuce qui m'a échappé ?
>
> Peut-on imaginer que VB puisse lancer un Etat Access 2000 basé sur une
> requête.
>
> Comme mes fichiers sont des fichiers Access, arriver à lancer un état


Access
> serait une solution qui me satisferait.
>
> Toute aide est la bienvenue.
>
> Merci
bonjour,
oui vb peut très bien lancer un état access.

@+Quaz

--
This is an automatic signature of MesNews.
Site : http://mesnews.no-ip.com



Avatar
Quasimodo
Giques wrote on 11/5/2004 :
Merci Quaz,

Mais comment fait-on ?

@+

Giques
"Quasimodo" a écrit dans le message de news:

Alain Ménard explained on 11/5/2004 :
Bonsoir,

Je dois impérativement imprimer des étiquettes avec VB à partir d'une base
Access.

Les bases Access ce n'est pas un souci pour moi, mais il semblerait que VB
soit totalement incapable de générer des étiquettes.

Alors je me pose la question suivante :

Ya t'il une astuce qui m'a échappé ?

Peut-on imaginer que VB puisse lancer un Etat Access 2000 basé sur une
requête.

Comme mes fichiers sont des fichiers Access, arriver à lancer un état
Access serait une solution qui me satisferait.

Toute aide est la bienvenue.

Merci


bonjour,
oui vb peut très bien lancer un état access.

@+Quaz

--
This is an automatic signature of MesNews.
Site : http://mesnews.no-ip.com





re,
vous sélectionnez dans les références de votre projet la librairie MS
Access (Microsoft Access 9.0 Object Library) et vous vous connectez sur
votre mdb. Vous devez utiliser les objets MS Access etat pour pouvoir
le faire. Voici un petit sample pour vous aidez.
Voici l'idée (vous devez sélectionner aussi la commdialoguebox, copier
le code dans une forme et ajouter un boutton.

'---------------------------------------------------------------------------------------------------------------------------

Option Explicit

Private Sub Command1_Click()

Dim lngCpt As Long
Dim strReportsNameListe As String
Dim strFileName As String
Dim objEtat As Access.Report
Dim objAccess As Access.Application

cmdlgmain.DefaultExt = "*.mdb"
cmdlgmain.DialogTitle = "Open mdb"
cmdlgmain.Filter = "MS Access *.Mdb|*.mdb"
cmdlgmain.ShowOpen
strFileName = cmdlgmain.FileName
If (Trim(strFileName) = "") Then Exit Sub
If (Dir(strFileName) = "") Then Exit Sub
Set objAccess = New Access.Application
objAccess.OpenCurrentDatabase strFileName
If objAccess.Reports.Count > 0 Then
For lngCpt = 1 To objAccess.Reports.Count
strReportsNameListe = strReportsNameListe &
objAccess.Reports.Item(lngCpt).Name & vbCrLf
Next lngCpt
MsgBox "Liste of reports." & vbCrLf & strReportsNameListe,
vbInformation + vbOKOnly, "Liste of reports."
Else
MsgBox "No reports to show.", vbOKOnly + vbInformation, "Liste of
reports."
End If
objAccess.CloseCurrentDatabase
objAccess.Quit
Set objAccess = Nothing

End Sub
'---------------------------------------------------------------------------------------------------------------------------

@+Quaz

--
This is an automatic signature of MesNews.
Site : http://mesnews.no-ip.com
Avatar
Alain Ménard
Bonjour,

C'est effectivement une bonne idée.

Seulement j'ai un souci.

Lorsque j'utilise la commande : objAccess.OpenCurrentDatabase
"c:MaCollection1.MDB"

un message d'erreur apparait me précisant que ce fichier est déja ouvert en
mode exclusif.

Effectivement ce fichier est utilisé puisque dans mon appli, on ouvre une
collection (de pièces) afin de saisir sa collection.

Pour info mon fichier "MaCollection1.MDB" est ouvert de la façon suivante
(en simplifié) :

strSQL2 = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source "c:MaCollection1.MDB";Jet OLEDB:System database=" & App.Path &
"philatel.MDW"

Set conADO = New ADODB.Connection
conADO.CursorLocation = adUseClient
conADO.Open ConnectionString:=strSQL2, UserID:="Utilisateur"

puis par exemple

strSQL = "SELECT * from types order by Numero"
rstFiches.Open strSQL, conADO

Y'a t'il un moyen de dire que le fichier ne doit pas être ouvert en exclusif
?

Cela me permettrait d'attaquer le fichier MDB pour lancer l'état

Grand merci par avance.

--
Amicalement

Alain Ménard
Auteur des logiciels Philatélix
Téléphone : 01 39 52 91 99
VISION-TECH : 40 rue des Vignobles 78400 CHATOU
Web : www.philatelix.fr

"Quasimodo" a écrit dans le message de
news:
Giques wrote on 11/5/2004 :
> Merci Quaz,
>
> Mais comment fait-on ?
>
> @+
>
> Giques
> "Quasimodo" a écrit dans le message de news:
>
>> Alain Ménard explained on 11/5/2004 :
>>> Bonsoir,
>>>
>>> Je dois impérativement imprimer des étiquettes avec VB à partir d'une


base
>>> Access.
>>>
>>> Les bases Access ce n'est pas un souci pour moi, mais il semblerait


que VB
>>> soit totalement incapable de générer des étiquettes.
>>>
>>> Alors je me pose la question suivante :
>>>
>>> Ya t'il une astuce qui m'a échappé ?
>>>
>>> Peut-on imaginer que VB puisse lancer un Etat Access 2000 basé sur une
>>> requête.
>>>
>>> Comme mes fichiers sont des fichiers Access, arriver à lancer un état
>>> Access serait une solution qui me satisferait.
>>>
>>> Toute aide est la bienvenue.
>>>
>>> Merci
>> bonjour,
>> oui vb peut très bien lancer un état access.
>>
>> @+Quaz
>>
>> --
>> This is an automatic signature of MesNews.
>> Site : http://mesnews.no-ip.com

re,
vous sélectionnez dans les références de votre projet la librairie MS
Access (Microsoft Access 9.0 Object Library) et vous vous connectez sur
votre mdb. Vous devez utiliser les objets MS Access etat pour pouvoir
le faire. Voici un petit sample pour vous aidez.
Voici l'idée (vous devez sélectionner aussi la commdialoguebox, copier
le code dans une forme et ajouter un boutton.




'---------------------------------------------------------------------------
------------------------------------------------

Option Explicit

Private Sub Command1_Click()

Dim lngCpt As Long
Dim strReportsNameListe As String
Dim strFileName As String
Dim objEtat As Access.Report
Dim objAccess As Access.Application

cmdlgmain.DefaultExt = "*.mdb"
cmdlgmain.DialogTitle = "Open mdb"
cmdlgmain.Filter = "MS Access *.Mdb|*.mdb"
cmdlgmain.ShowOpen
strFileName = cmdlgmain.FileName
If (Trim(strFileName) = "") Then Exit Sub
If (Dir(strFileName) = "") Then Exit Sub
Set objAccess = New Access.Application
objAccess.OpenCurrentDatabase strFileName
If objAccess.Reports.Count > 0 Then
For lngCpt = 1 To objAccess.Reports.Count
strReportsNameListe = strReportsNameListe &
objAccess.Reports.Item(lngCpt).Name & vbCrLf
Next lngCpt
MsgBox "Liste of reports." & vbCrLf & strReportsNameListe,
vbInformation + vbOKOnly, "Liste of reports."
Else
MsgBox "No reports to show.", vbOKOnly + vbInformation, "Liste of
reports."
End If
objAccess.CloseCurrentDatabase
objAccess.Quit
Set objAccess = Nothing

End Sub



'---------------------------------------------------------------------------
------------------------------------------------

@+Quaz

--
This is an automatic signature of MesNews.
Site : http://mesnews.no-ip.com



Avatar
Alain Ménard
ou même différemment

est'il possible dans : objAccess.OpenCurrentDatabase
de préciser le nom d'utilisateur et le mot de passe par le programme ?


--
Amicalement

Alain Ménard

"Quasimodo" a écrit dans le message de
news:
Giques wrote on 11/5/2004 :
> Merci Quaz,
>
> Mais comment fait-on ?
>
> @+
>
> Giques
> "Quasimodo" a écrit dans le message de news:
>
>> Alain Ménard explained on 11/5/2004 :
>>> Bonsoir,
>>>
>>> Je dois impérativement imprimer des étiquettes avec VB à partir d'une


base
>>> Access.
>>>
>>> Les bases Access ce n'est pas un souci pour moi, mais il semblerait


que VB
>>> soit totalement incapable de générer des étiquettes.
>>>
>>> Alors je me pose la question suivante :
>>>
>>> Ya t'il une astuce qui m'a échappé ?
>>>
>>> Peut-on imaginer que VB puisse lancer un Etat Access 2000 basé sur une
>>> requête.
>>>
>>> Comme mes fichiers sont des fichiers Access, arriver à lancer un état
>>> Access serait une solution qui me satisferait.
>>>
>>> Toute aide est la bienvenue.
>>>
>>> Merci
>> bonjour,
>> oui vb peut très bien lancer un état access.
>>
>> @+Quaz
>>
>> --
>> This is an automatic signature of MesNews.
>> Site : http://mesnews.no-ip.com

re,
vous sélectionnez dans les références de votre projet la librairie MS
Access (Microsoft Access 9.0 Object Library) et vous vous connectez sur
votre mdb. Vous devez utiliser les objets MS Access etat pour pouvoir
le faire. Voici un petit sample pour vous aidez.
Voici l'idée (vous devez sélectionner aussi la commdialoguebox, copier
le code dans une forme et ajouter un boutton.




'---------------------------------------------------------------------------
------------------------------------------------

Option Explicit

Private Sub Command1_Click()

Dim lngCpt As Long
Dim strReportsNameListe As String
Dim strFileName As String
Dim objEtat As Access.Report
Dim objAccess As Access.Application

cmdlgmain.DefaultExt = "*.mdb"
cmdlgmain.DialogTitle = "Open mdb"
cmdlgmain.Filter = "MS Access *.Mdb|*.mdb"
cmdlgmain.ShowOpen
strFileName = cmdlgmain.FileName
If (Trim(strFileName) = "") Then Exit Sub
If (Dir(strFileName) = "") Then Exit Sub
Set objAccess = New Access.Application
objAccess.OpenCurrentDatabase strFileName
If objAccess.Reports.Count > 0 Then
For lngCpt = 1 To objAccess.Reports.Count
strReportsNameListe = strReportsNameListe &
objAccess.Reports.Item(lngCpt).Name & vbCrLf
Next lngCpt
MsgBox "Liste of reports." & vbCrLf & strReportsNameListe,
vbInformation + vbOKOnly, "Liste of reports."
Else
MsgBox "No reports to show.", vbOKOnly + vbInformation, "Liste of
reports."
End If
objAccess.CloseCurrentDatabase
objAccess.Quit
Set objAccess = Nothing

End Sub



'---------------------------------------------------------------------------
------------------------------------------------

@+Quaz

--
This is an automatic signature of MesNews.
Site : http://mesnews.no-ip.com



Avatar
Quasimodo
Alain Ménard used his keyboard to write :
Bonjour,

C'est effectivement une bonne idée.

Seulement j'ai un souci.

Lorsque j'utilise la commande : objAccess.OpenCurrentDatabase
"c:MaCollection1.MDB"

un message d'erreur apparait me précisant que ce fichier est déja ouvert en
mode exclusif.

Effectivement ce fichier est utilisé puisque dans mon appli, on ouvre une
collection (de pièces) afin de saisir sa collection.

Pour info mon fichier "MaCollection1.MDB" est ouvert de la façon suivante
(en simplifié) :

strSQL2 = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source > "c:MaCollection1.MDB";Jet OLEDB:System database=" & App.Path &
"philatel.MDW"

Set conADO = New ADODB.Connection
conADO.CursorLocation = adUseClient
conADO.Open ConnectionString:=strSQL2, UserID:="Utilisateur"

puis par exemple

strSQL = "SELECT * from types order by Numero"
rstFiches.Open strSQL, conADO

Y'a t'il un moyen de dire que le fichier ne doit pas être ouvert en exclusif
?

Cela me permettrait d'attaquer le fichier MDB pour lancer l'état

Grand merci par avance.

--
Amicalement

Alain Ménard
Auteur des logiciels Philatélix
Téléphone : 01 39 52 91 99
VISION-TECH : 40 rue des Vignobles 78400 CHATOU
Web : www.philatelix.fr

"Quasimodo" a écrit dans le message de
news:
Giques wrote on 11/5/2004 :
Merci Quaz,

Mais comment fait-on ?

@+

Giques
"Quasimodo" a écrit dans le message de news:

Alain Ménard explained on 11/5/2004 :
Bonsoir,

Je dois impérativement imprimer des étiquettes avec VB à partir d'une
base Access.

Les bases Access ce n'est pas un souci pour moi, mais il semblerait que
VB soit totalement incapable de générer des étiquettes.

Alors je me pose la question suivante :

Ya t'il une astuce qui m'a échappé ?

Peut-on imaginer que VB puisse lancer un Etat Access 2000 basé sur une
requête.

Comme mes fichiers sont des fichiers Access, arriver à lancer un état
Access serait une solution qui me satisferait.

Toute aide est la bienvenue.

Merci


bonjour,
oui vb peut très bien lancer un état access.

@+Quaz

--
This is an automatic signature of MesNews.
Site : http://mesnews.no-ip.com





re,
vous sélectionnez dans les références de votre projet la librairie MS
Access (Microsoft Access 9.0 Object Library) et vous vous connectez sur
votre mdb. Vous devez utiliser les objets MS Access etat pour pouvoir
le faire. Voici un petit sample pour vous aidez.
Voici l'idée (vous devez sélectionner aussi la commdialoguebox, copier
le code dans une forme et ajouter un boutton.




'---------------------------------------------------------------------------
------------------------------------------------

Option Explicit

Private Sub Command1_Click()

Dim lngCpt As Long
Dim strReportsNameListe As String
Dim strFileName As String
Dim objEtat As Access.Report
Dim objAccess As Access.Application

cmdlgmain.DefaultExt = "*.mdb"
cmdlgmain.DialogTitle = "Open mdb"
cmdlgmain.Filter = "MS Access *.Mdb|*.mdb"
cmdlgmain.ShowOpen
strFileName = cmdlgmain.FileName
If (Trim(strFileName) = "") Then Exit Sub
If (Dir(strFileName) = "") Then Exit Sub
Set objAccess = New Access.Application
objAccess.OpenCurrentDatabase strFileName
If objAccess.Reports.Count > 0 Then
For lngCpt = 1 To objAccess.Reports.Count
strReportsNameListe = strReportsNameListe &
objAccess.Reports.Item(lngCpt).Name & vbCrLf
Next lngCpt
MsgBox "Liste of reports." & vbCrLf & strReportsNameListe,
vbInformation + vbOKOnly, "Liste of reports."
Else
MsgBox "No reports to show.", vbOKOnly + vbInformation, "Liste of
reports."
End If
objAccess.CloseCurrentDatabase
objAccess.Quit
Set objAccess = Nothing

End Sub



'---------------------------------------------------------------------------
------------------------------------------------

@+Quaz

--
This is an automatic signature of MesNews.
Site : http://mesnews.no-ip.com





bonjour,
je ne pense pas que l'ado ouvre une connection exclusive.
Par contre, il faut vérifier si vous pouvez ouvrir une connection ado
avec un login particulier et ouvrir en même temps une connection en
mode ms access avec ce même login. Vérifiez bien que pendant vos test
aucunne autre ouverture par un autre programme ou vous même est faite
en mode exclusif. Sinon, je ne sais pas je dois faire des testes.

@+Quaz

--
This is an automatic signature of MesNews.
Site : http://mesnews.no-ip.com
Avatar
Quasimodo
Alain Ménard formulated on Sunday :
ou même différemment

est'il possible dans : objAccess.OpenCurrentDatabase
de préciser le nom d'utilisateur et le mot de passe par le programme ?


--
Amicalement

Alain Ménard

"Quasimodo" a écrit dans le message de
news:
Giques wrote on 11/5/2004 :
Merci Quaz,

Mais comment fait-on ?

@+

Giques
"Quasimodo" a écrit dans le message de news:

Alain Ménard explained on 11/5/2004 :
Bonsoir,

Je dois impérativement imprimer des étiquettes avec VB à partir d'une
base Access.

Les bases Access ce n'est pas un souci pour moi, mais il semblerait que
VB soit totalement incapable de générer des étiquettes.

Alors je me pose la question suivante :

Ya t'il une astuce qui m'a échappé ?

Peut-on imaginer que VB puisse lancer un Etat Access 2000 basé sur une
requête.

Comme mes fichiers sont des fichiers Access, arriver à lancer un état
Access serait une solution qui me satisferait.

Toute aide est la bienvenue.

Merci


bonjour,
oui vb peut très bien lancer un état access.

@+Quaz

--
This is an automatic signature of MesNews.
Site : http://mesnews.no-ip.com





re,
vous sélectionnez dans les références de votre projet la librairie MS
Access (Microsoft Access 9.0 Object Library) et vous vous connectez sur
votre mdb. Vous devez utiliser les objets MS Access etat pour pouvoir
le faire. Voici un petit sample pour vous aidez.
Voici l'idée (vous devez sélectionner aussi la commdialoguebox, copier
le code dans une forme et ajouter un boutton.




'---------------------------------------------------------------------------
------------------------------------------------

Option Explicit

Private Sub Command1_Click()

Dim lngCpt As Long
Dim strReportsNameListe As String
Dim strFileName As String
Dim objEtat As Access.Report
Dim objAccess As Access.Application

cmdlgmain.DefaultExt = "*.mdb"
cmdlgmain.DialogTitle = "Open mdb"
cmdlgmain.Filter = "MS Access *.Mdb|*.mdb"
cmdlgmain.ShowOpen
strFileName = cmdlgmain.FileName
If (Trim(strFileName) = "") Then Exit Sub
If (Dir(strFileName) = "") Then Exit Sub
Set objAccess = New Access.Application
objAccess.OpenCurrentDatabase strFileName
If objAccess.Reports.Count > 0 Then
For lngCpt = 1 To objAccess.Reports.Count
strReportsNameListe = strReportsNameListe &
objAccess.Reports.Item(lngCpt).Name & vbCrLf
Next lngCpt
MsgBox "Liste of reports." & vbCrLf & strReportsNameListe,
vbInformation + vbOKOnly, "Liste of reports."
Else
MsgBox "No reports to show.", vbOKOnly + vbInformation, "Liste of
reports."
End If
objAccess.CloseCurrentDatabase
objAccess.Quit
Set objAccess = Nothing

End Sub



'---------------------------------------------------------------------------
------------------------------------------------

@+Quaz

--
This is an automatic signature of MesNews.
Site : http://mesnews.no-ip.com





re,
je ne pense pas, par contre via le workspace - dbengine, il y a moyen.
Reste à cherché un lien, ou une mise ne oeuvre : je vais faire une
recherche la dessus.

@+Quaz

--
This is an automatic signature of MesNews.
Site : http://mesnews.no-ip.com
Avatar
Quasimodo
Alain Ménard formulated the question :
Bonsoir à tous,

Je vous fais part de mes trouvailles et de mes dernières questions
concernant l'impression d'un état Access à partir de VB?

Tout d'abord voila le code pour lancer un état Access :

PrintAccessReport dbname:="c:monfichier.mdb", rptname:="E Etiquettes 2
37mm", preview:=True


Sub PrintAccessReport(dbname As String, rptname As String, _
preview As Boolean)
Dim objAccess As Object
On Error GoTo PrintAccessReport_ErrHandler
Set objAccess = CreateObject("Access.Application")
With objAccess
.OpenCurrentDatabase filepath:Ûname
If preview Then
.Visible = True
.DoCmd.OpenReport reportname:=rptname, _
View:¬cess.acPreview
Else
.DoCmd.OpenReport reportname:=rptname, _
View:¬cess.acNormal
DoEvents 'Allow report to be sent to printer.
End If
End With
Set objAccess = Nothing
Exit Sub
PrintAccessReport_ErrHandler:
MsgBox Error$(), , "Erreur d'impression de l'état"
End Sub


Ensuite j'ai 2 questions, oubliez mes posts précédents

Question 1
Ce code ouvre Access mais je suppose que cela nécessite que l'utilisateur
est Access d'installé. Dois-je donc mettre dans l'install Access Runtime
pour etre sur que l'utilisateur puisse lancer l'état ?

Question 2

à la ligne :
.OpenCurrentDatabase filepath:Ûname

Access m'affiche la fenetre demandant le nom d'utilisateur et le mot de
passe. y a t'il moyen de le prérenseigner ?

Merci de vos réponses

--
Amicalement

Alain Ménard
Auteur des logiciels Philatélix

"Quasimodo" a écrit dans le message de
news:
Giques wrote on 11/5/2004 :
Merci Quaz,

Mais comment fait-on ?

@+

Giques
"Quasimodo" a écrit dans le message de news:

Alain Ménard explained on 11/5/2004 :
Bonsoir,

Je dois impérativement imprimer des étiquettes avec VB à partir d'une
base Access.

Les bases Access ce n'est pas un souci pour moi, mais il semblerait que
VB soit totalement incapable de générer des étiquettes.

Alors je me pose la question suivante :

Ya t'il une astuce qui m'a échappé ?

Peut-on imaginer que VB puisse lancer un Etat Access 2000 basé sur une
requête.

Comme mes fichiers sont des fichiers Access, arriver à lancer un état
Access serait une solution qui me satisferait.

Toute aide est la bienvenue.

Merci


bonjour,
oui vb peut très bien lancer un état access.

@+Quaz

--
This is an automatic signature of MesNews.
Site : http://mesnews.no-ip.com





re,
vous sélectionnez dans les références de votre projet la librairie MS
Access (Microsoft Access 9.0 Object Library) et vous vous connectez sur
votre mdb. Vous devez utiliser les objets MS Access etat pour pouvoir
le faire. Voici un petit sample pour vous aidez.
Voici l'idée (vous devez sélectionner aussi la commdialoguebox, copier
le code dans une forme et ajouter un boutton.




'---------------------------------------------------------------------------
------------------------------------------------

Option Explicit

Private Sub Command1_Click()

Dim lngCpt As Long
Dim strReportsNameListe As String
Dim strFileName As String
Dim objEtat As Access.Report
Dim objAccess As Access.Application

cmdlgmain.DefaultExt = "*.mdb"
cmdlgmain.DialogTitle = "Open mdb"
cmdlgmain.Filter = "MS Access *.Mdb|*.mdb"
cmdlgmain.ShowOpen
strFileName = cmdlgmain.FileName
If (Trim(strFileName) = "") Then Exit Sub
If (Dir(strFileName) = "") Then Exit Sub
Set objAccess = New Access.Application
objAccess.OpenCurrentDatabase strFileName
If objAccess.Reports.Count > 0 Then
For lngCpt = 1 To objAccess.Reports.Count
strReportsNameListe = strReportsNameListe &
objAccess.Reports.Item(lngCpt).Name & vbCrLf
Next lngCpt
MsgBox "Liste of reports." & vbCrLf & strReportsNameListe,
vbInformation + vbOKOnly, "Liste of reports."
Else
MsgBox "No reports to show.", vbOKOnly + vbInformation, "Liste of
reports."
End If
objAccess.CloseCurrentDatabase
objAccess.Quit
Set objAccess = Nothing

End Sub



'---------------------------------------------------------------------------
------------------------------------------------

@+Quaz

--
This is an automatic signature of MesNews.
Site : http://mesnews.no-ip.com




bonjour,
1. oui
2. sais pas sorry.

@+Quaz

--
This is an automatic signature of MesNews.
Site : http://mesnews.no-ip.com
Avatar
Alain Ménard
Bonsoir à tous,

Je vous fais part de mes trouvailles et de mes dernières questions
concernant l'impression d'un état Access à partir de VB?

Tout d'abord voila le code pour lancer un état Access :

PrintAccessReport dbname:="c:monfichier.mdb", rptname:="E Etiquettes 2
37mm", preview:=True


Sub PrintAccessReport(dbname As String, rptname As String, _
preview As Boolean)
Dim objAccess As Object
On Error GoTo PrintAccessReport_ErrHandler
Set objAccess = CreateObject("Access.Application")
With objAccess
.OpenCurrentDatabase filepath:Ûname
If preview Then
.Visible = True
.DoCmd.OpenReport reportname:=rptname, _
View:¬cess.acPreview
Else
.DoCmd.OpenReport reportname:=rptname, _
View:¬cess.acNormal
DoEvents 'Allow report to be sent to printer.
End If
End With
Set objAccess = Nothing
Exit Sub
PrintAccessReport_ErrHandler:
MsgBox Error$(), , "Erreur d'impression de l'état"
End Sub


Ensuite j'ai 2 questions, oubliez mes posts précédents

Question 1
Ce code ouvre Access mais je suppose que cela nécessite que l'utilisateur
est Access d'installé. Dois-je donc mettre dans l'install Access Runtime
pour etre sur que l'utilisateur puisse lancer l'état ?

Question 2

à la ligne :
.OpenCurrentDatabase filepath:Ûname

Access m'affiche la fenetre demandant le nom d'utilisateur et le mot de
passe. y a t'il moyen de le prérenseigner ?

Merci de vos réponses

--
Amicalement

Alain Ménard
Auteur des logiciels Philatélix

"Quasimodo" a écrit dans le message de
news:
Giques wrote on 11/5/2004 :
> Merci Quaz,
>
> Mais comment fait-on ?
>
> @+
>
> Giques
> "Quasimodo" a écrit dans le message de news:
>
>> Alain Ménard explained on 11/5/2004 :
>>> Bonsoir,
>>>
>>> Je dois impérativement imprimer des étiquettes avec VB à partir d'une


base
>>> Access.
>>>
>>> Les bases Access ce n'est pas un souci pour moi, mais il semblerait


que VB
>>> soit totalement incapable de générer des étiquettes.
>>>
>>> Alors je me pose la question suivante :
>>>
>>> Ya t'il une astuce qui m'a échappé ?
>>>
>>> Peut-on imaginer que VB puisse lancer un Etat Access 2000 basé sur une
>>> requête.
>>>
>>> Comme mes fichiers sont des fichiers Access, arriver à lancer un état
>>> Access serait une solution qui me satisferait.
>>>
>>> Toute aide est la bienvenue.
>>>
>>> Merci
>> bonjour,
>> oui vb peut très bien lancer un état access.
>>
>> @+Quaz
>>
>> --
>> This is an automatic signature of MesNews.
>> Site : http://mesnews.no-ip.com

re,
vous sélectionnez dans les références de votre projet la librairie MS
Access (Microsoft Access 9.0 Object Library) et vous vous connectez sur
votre mdb. Vous devez utiliser les objets MS Access etat pour pouvoir
le faire. Voici un petit sample pour vous aidez.
Voici l'idée (vous devez sélectionner aussi la commdialoguebox, copier
le code dans une forme et ajouter un boutton.




'---------------------------------------------------------------------------
------------------------------------------------

Option Explicit

Private Sub Command1_Click()

Dim lngCpt As Long
Dim strReportsNameListe As String
Dim strFileName As String
Dim objEtat As Access.Report
Dim objAccess As Access.Application

cmdlgmain.DefaultExt = "*.mdb"
cmdlgmain.DialogTitle = "Open mdb"
cmdlgmain.Filter = "MS Access *.Mdb|*.mdb"
cmdlgmain.ShowOpen
strFileName = cmdlgmain.FileName
If (Trim(strFileName) = "") Then Exit Sub
If (Dir(strFileName) = "") Then Exit Sub
Set objAccess = New Access.Application
objAccess.OpenCurrentDatabase strFileName
If objAccess.Reports.Count > 0 Then
For lngCpt = 1 To objAccess.Reports.Count
strReportsNameListe = strReportsNameListe &
objAccess.Reports.Item(lngCpt).Name & vbCrLf
Next lngCpt
MsgBox "Liste of reports." & vbCrLf & strReportsNameListe,
vbInformation + vbOKOnly, "Liste of reports."
Else
MsgBox "No reports to show.", vbOKOnly + vbInformation, "Liste of
reports."
End If
objAccess.CloseCurrentDatabase
objAccess.Quit
Set objAccess = Nothing

End Sub



'---------------------------------------------------------------------------
------------------------------------------------

@+Quaz

--
This is an automatic signature of MesNews.
Site : http://mesnews.no-ip.com



Avatar
Alain Ménard
Merci Quas

--
Amicalement

Alain Ménard

"Quasimodo" a écrit dans le message de
news:
Alain Ménard formulated on Sunday :
> ou même différemment
>
> est'il possible dans : objAccess.OpenCurrentDatabase
> de préciser le nom d'utilisateur et le mot de passe par le programme ?
>
>
> --
> Amicalement
>
> Alain Ménard
>
> "Quasimodo" a écrit dans le message de
> news:
>> Giques wrote on 11/5/2004 :
>>> Merci Quaz,
>>>
>>> Mais comment fait-on ?
>>>
>>> @+
>>>
>>> Giques
>>> "Quasimodo" a écrit dans le message de news:
>>>
>>>> Alain Ménard explained on 11/5/2004 :
>>>>> Bonsoir,
>>>>>
>>>>> Je dois impérativement imprimer des étiquettes avec VB à partir


d'une
>>>>> base Access.
>>>>>
>>>>> Les bases Access ce n'est pas un souci pour moi, mais il semblerait


que
>>>>> VB soit totalement incapable de générer des étiquettes.
>>>>>
>>>>> Alors je me pose la question suivante :
>>>>>
>>>>> Ya t'il une astuce qui m'a échappé ?
>>>>>
>>>>> Peut-on imaginer que VB puisse lancer un Etat Access 2000 basé sur


une
>>>>> requête.
>>>>>
>>>>> Comme mes fichiers sont des fichiers Access, arriver à lancer un


état
>>>>> Access serait une solution qui me satisferait.
>>>>>
>>>>> Toute aide est la bienvenue.
>>>>>
>>>>> Merci
>>>> bonjour,
>>>> oui vb peut très bien lancer un état access.
>>>>
>>>> @+Quaz
>>>>
>>>> --
>>>> This is an automatic signature of MesNews.
>>>> Site : http://mesnews.no-ip.com
>>
>> re,
>> vous sélectionnez dans les références de votre projet la librairie MS
>> Access (Microsoft Access 9.0 Object Library) et vous vous connectez sur
>> votre mdb. Vous devez utiliser les objets MS Access etat pour pouvoir
>> le faire. Voici un petit sample pour vous aidez.
>> Voici l'idée (vous devez sélectionner aussi la commdialoguebox, copier
>> le code dans une forme et ajouter un boutton.
>>
>>
>


'---------------------------------------------------------------------------
> ------------------------------------------------
>>
>> Option Explicit
>>
>> Private Sub Command1_Click()
>>
>> Dim lngCpt As Long
>> Dim strReportsNameListe As String
>> Dim strFileName As String
>> Dim objEtat As Access.Report
>> Dim objAccess As Access.Application
>>
>> cmdlgmain.DefaultExt = "*.mdb"
>> cmdlgmain.DialogTitle = "Open mdb"
>> cmdlgmain.Filter = "MS Access *.Mdb|*.mdb"
>> cmdlgmain.ShowOpen
>> strFileName = cmdlgmain.FileName
>> If (Trim(strFileName) = "") Then Exit Sub
>> If (Dir(strFileName) = "") Then Exit Sub
>> Set objAccess = New Access.Application
>> objAccess.OpenCurrentDatabase strFileName
>> If objAccess.Reports.Count > 0 Then
>> For lngCpt = 1 To objAccess.Reports.Count
>> strReportsNameListe = strReportsNameListe &
>> objAccess.Reports.Item(lngCpt).Name & vbCrLf
>> Next lngCpt
>> MsgBox "Liste of reports." & vbCrLf & strReportsNameListe,
>> vbInformation + vbOKOnly, "Liste of reports."
>> Else
>> MsgBox "No reports to show.", vbOKOnly + vbInformation, "Liste of
>> reports."
>> End If
>> objAccess.CloseCurrentDatabase
>> objAccess.Quit
>> Set objAccess = Nothing
>>
>> End Sub
>>
>


'---------------------------------------------------------------------------
> ------------------------------------------------
>>
>> @+Quaz
>>
>> --
>> This is an automatic signature of MesNews.
>> Site : http://mesnews.no-ip.com

re,
je ne pense pas, par contre via le workspace - dbengine, il y a moyen.
Reste à cherché un lien, ou une mise ne oeuvre : je vais faire une
recherche la dessus.

@+Quaz

--
This is an automatic signature of MesNews.
Site : http://mesnews.no-ip.com