31-07-13, 09:29 PM
العناصر التي سنظيفها :
Command2 للطباعة
Command1 للخروج
- سمي 1MshFlexGrid بــــ FlexSel
-
دوبل كليك على الفورمة و انسخ هذا الكود كما هو
اظف Module و سمه ModuleFlex
اظف له الكود التالي
الان ناتي لبرمجة قاعدة البيانات و هي في المرفقات
و بطبيعة الحال من خلال هذا المثال يمكنك استغلاله في برنامجك و تغيير معطياته حسب البرنامج المشتغل عليه
و ارجوا ان ينال اعجابكم
Command2 للطباعة
Command1 للخروج
- سمي 1MshFlexGrid بــــ FlexSel
-
كود :
Option Explicit
Dim MaDb As String
Dim CnStr As String
Dim TitreImp As String
Dim CnnDb As ADODB.Connection
Dim RsSoc As ADODB.Recordset
Dim NbreLigne As Integer
Dim t As Integer
Dim k As Integer
Private Sub Command1_Click()
End
End Sub
Private Sub Command2_Click()
Command2.Enabled = False
' Chargement de la grille qui contiendra les x données d'une page
Load FlexSel(1)
FlexSel(1).Visible = False
' Vide la grille d'impression
Set FlexSel(1).DataSource = Nothing
' test du nombre de ligne pour savoir si l'impression doit se faire sur plusieurs pages
If RsSoc.RecordCount < NbreLigne Then ' une seule page
Set FlexSel(1).DataSource = RsSoc
ImprimeFlex
Else ' plusieurs pages
FlexSel(1).Rows = 35
k = 1
With RsSoc
.MoveFirst
Do While Not .EOF
FlexSel(1).Row = k
For t = 1 To 4
FlexSel(1).Col = t
If IsNull(.Fields(t - 1)) Then
FlexSel(1).Text = ""
Else
FlexSel(1).Text = .Fields(t - 1)
End If
Next t
k = k + 1
If k = 35 Then
ImprimeFlex
FlexSel(1).Clear
k = 1
End If
.MoveNext
Loop
End With
FlexSel(1).Rows = k - 1
ImprimeFlex
End If
' suppression de la grille d'impression
Unload FlexSel(1)
End Sub
Private Sub FlexSel_Click(Index As Integer)
End Sub
Private Sub Form_Load()
' Ouverture de la connection à la base de données
Set CnnDb = New ADODB.Connection
Set RsSoc = New ADODB.Recordset
MaDb = PathDb & "Sociétés.mdb"
CnStr = "driver={Microsoft Access Driver (*.mdb)};dbq=" & MaDb
RsSoc.Open "SELECT * FROM [DétailSociétés]", CnStr, adOpenKeyset, adLockReadOnly
' Mise en page du MSHFlexgrid
Set FlexSel(0).DataSource = RsSoc
FlexSel(0).ColWidth(0) = 150
FlexSel(0).ColWidth(1) = 3000
FlexSel(0).ColWidth(2) = 2500
FlexSel(0).ColWidth(3) = 2250
FlexSel(0).ColWidth(4) = 1500
FlexSel(0).ColHeader(0) = flexColHeaderOn
FlexSel(0).ColHeaderCaption(0, 1) = "NOM de la SOCIETE"
FlexSel(0).ColHeaderCaption(0, 2) = "NOM du RESPONSABLE"
FlexSel(0).ColHeaderCaption(0, 3) = "ADRESSE"
FlexSel(0).ColHeaderCaption(0, 4) = "TELEPHONE"
FlexSel(0).Visible = True
FlexSel(0).Row = 0
FlexSel(0).Col = 0
' Initialisation du nombre de ligne d'impression sur une page
NbreLigne = 36
End Sub
Private Sub ImprimeFlex()
FlexSel(1).ColWidth(0) = 200
FlexSel(1).ColWidth(1) = 5000
FlexSel(1).ColWidth(2) = 4000
FlexSel(1).ColWidth(3) = 4000
FlexSel(1).ColWidth(4) = 2000
FlexSel(1).ColHeader(0) = flexColHeaderOn
FlexSel(1).ColHeaderCaption(0, 1) = "NOM de la SOCIETE"
FlexSel(1).ColHeaderCaption(0, 2) = "NOM du RESPONSABLE"
FlexSel(1).ColHeaderCaption(0, 3) = "ADRESSE"
FlexSel(1).ColHeaderCaption(0, 4) = "TELEPHONE"
FlexSel(1).Col = 0
FlexSel(1).Row = 0
Printer.Orientation = 2
TitreImp = "Impression des données sociétés"
Printer.CurrentX = (Printer.Width - Printer.TextWidth(TitreImp)) / 2
Printer.CurrentY = 200
Printer.FontName = "Tahoma"
Printer.FontSize = 14
Printer.FontBold = True
Printer.Print TitreImp
Printer.PaintPicture FlexSel(1).Picture, 500, 800
Printer.EndDoc
End Subدوبل كليك على الفورمة و انسخ هذا الكود كما هو
اظف Module و سمه ModuleFlex
اظف له الكود التالي
كود :
Option Explicit
Public fMainForm As Impression
Public PathDb As String
Sub Main()
PathDb = App.Path & "\DataBases\"
Set fMainForm = New Impression
Load fMainForm
fMainForm.Show
End Sub
Public Sub ImageFond(Feuille As Form)
Feuille.ImgFond.Move 0, 0, Feuille.ScaleWidth, Feuille.ScaleHeight
End Subالان ناتي لبرمجة قاعدة البيانات و هي في المرفقات
و بطبيعة الحال من خلال هذا المثال يمكنك استغلاله في برنامجك و تغيير معطياته حسب البرنامج المشتغل عليه
و ارجوا ان ينال اعجابكم