Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

BDD AVEC RECHERCHE


Information sur la source

Catégorie :Base de Donnees Classé sous : bdd, base, donnée, recherche Niveau : Débutant Date de création : 25/01/2007 Date de mise à jour : 25/01/2007 17:08:31 Vu / téléchargé: 3 820 / 1 333

Note :
Aucune note

Commentaire sur cette source (10)
Ajouter un commentaire et/ou une note

Description

C'et une souce que j'ai mis a jours Base de donnee avec recherche
JE SUIS DEBUTTANT ALORS MERCI D'ETRE SYMPAS
 

Source

  • '------------------------------------------------------------------------------------------------------------------------------------------------------
  • Form1
  • Option Explicit
  • Public bd As New ADODB.Connection
  • Public cmdado As New ADODB.Command
  • Public tb As New ADODB.Recordset
  • Dim msg1 As String
  • Dim lar As Long, lng As Long
  • Public db As Database
  • Public rs As Recordset
  • Public sql As String
  • Private Sub Command1_Click()
  • tb.AddNew
  • tb![incasso] = IIf(IsNull(txtincasso.Text), "", (txtincasso.Text))
  • tb![entrate] = IIf(IsNull(txtentrate.Text), "", (txtentrate.Text))
  • tb![Vendite] = IIf(IsNull(txtvendite.Text), "", (txtvendite.Text))
  • tb![casa] = IIf(IsNull(txtcasa.Text), "", (txtcasa.Text))
  • tb![Giorno] = IIf(IsNull(txtgiorno), "", (txtgiorno))
  • tb![mese] = IIf(IsNull(txtmese), "", (txtmese))
  • tb![anno] = IIf(IsNull(txtanno), "", (txtanno))
  • adresse:
  • tb.Update
  • Call load_list
  • End Sub
  • Private Sub Command2_Click()
  • If Option1.Value = True Then
  • lstview1.ListItems.Clear
  • Dim LstItem As ListItem
  • cmdado.CommandText = "select * from carnetdadresse"
  • tb.Requery
  • On Error Resume Next
  • While (Not tb.EOF)
  • If (tb.RecordCount <> 0) Then
  • If (tb!mese) = mese.Text Then
  • Set LstItem = lstview1.ListItems.Add(, , CStr(tb!incasso))
  • If Not IsNull(tb!entrate) Then LstItem.SubItems(1) = CStr(tb!entrate)
  • If Not IsNull(tb!Vendite) Then LstItem.SubItems(2) = CStr(tb!Vendite)
  • If Not IsNull(tb!casa) Then LstItem.SubItems(3) = CStr(tb!casa)
  • If Not IsNull(tb!Giorno) Then LstItem.SubItems(4) = CStr(tb!Giorno)
  • If Not IsNull(tb!mese) Then LstItem.SubItems(5) = CStr(tb!mese)
  • If Not IsNull(tb!anno) Then LstItem.SubItems(6) = CStr(tb!anno)
  • Else
  • End If
  • End If
  • tb.MoveNext
  • Wend
  • Else
  • lstview1.ListItems.Clear
  • cmdado.CommandText = "select * from carnetdadresse"
  • tb.Requery
  • On Error Resume Next
  • While (Not tb.EOF)
  • If (tb.RecordCount <> 0) Then
  • If (tb!anno) = anno.Text Then
  • Set LstItem = lstview1.ListItems.Add(, , CStr(tb!incasso))
  • If Not IsNull(tb!entrate) Then LstItem.SubItems(1) = CStr(tb!entrate)
  • If Not IsNull(tb!Vendite) Then LstItem.SubItems(2) = CStr(tb!Vendite)
  • If Not IsNull(tb!casa) Then LstItem.SubItems(3) = CStr(tb!casa)
  • If Not IsNull(tb!Giorno) Then LstItem.SubItems(4) = CStr(tb!Giorno)
  • If Not IsNull(tb!mese) Then LstItem.SubItems(5) = CStr(tb!mese)
  • If Not IsNull(tb!anno) Then LstItem.SubItems(6) = CStr(tb!anno)
  • Else
  • End If
  • End If
  • tb.MoveNext
  • Wend
  • End If
  • End Sub
  • Private Sub Command3_Click()
  • Form2.Show
  • End Sub
  • Private Sub Command4_Click()
  • On Error GoTo Err_Main
  • If (tb.RecordCount > 0) Then
  • tb.Delete
  • tb.Update
  • tb.Requery
  • Call load_list
  • Else
  • Err_Main:
  • MsgBox "errore devi selezionare un Item"
  • End If
  • End Sub
  • Private Sub Command5_Click()
  • If Me.Height = "13710" Then
  • Me.Height = "11100"
  • Else
  • Me.Height = "13710"
  • End If
  • End Sub
  • Private Sub del_Click()
  • On Error GoTo Err_Main
  • If (tb.RecordCount > 0) Then
  • tb.Delete
  • tb.Update
  • tb.Requery
  • Call load_list
  • Else
  • Err_Main:
  • MsgBox "errore devi selezionare un Item"
  • End If
  • End Sub
  • Private Sub Form_Load()
  • Me.Height = "11100"
  • mnuFile.Visible = False
  • Data = Date
  • Dim i As Long
  • ' Sélection du mode détaillé
  • Me.lstview1.View = lvwReport
  • ' Création des colonnes
  • Me.lstview1.ColumnHeaders.Add 1, , "Incasso"
  • Me.lstview1.ColumnHeaders.Add 2, , "Persone entrate"
  • Me.lstview1.ColumnHeaders.Add 3, , "Vendite"
  • Me.lstview1.ColumnHeaders.Add 4, , "Casa"
  • Me.lstview1.ColumnHeaders.Add 5, , "Giorno"
  • Me.lstview1.ColumnHeaders.Add 5, , "Mese"
  • Me.lstview1.ColumnHeaders.Add 5, , "Anno"
  • For i = 1 To 8
  • Me.lstview1.ListItems.Add i, , "Valeur " & CStr(i) & ",1"
  • Me.lstview1.ListItems(i).SubItems(1) = "Valeur " & CStr(i) & ",2"
  • Me.lstview1.ListItems(i).SubItems(2) = "Valeur " & CStr(i) & ",3"
  • Me.lstview1.ListItems(i).SubItems(3) = "Valeur " & CStr(i) & ",4"
  • Me.lstview1.ListItems(i).SubItems(4) = "Valeur " & CStr(i) & ",5"
  • Me.lstview1.ListItems(i).SubItems(5) = "Valeur " & CStr(i) & ",6"
  • Me.lstview1.ListItems(i).SubItems(6) = "Valeur " & CStr(i) & ",7"
  • Next i
  • ' Sélection du mode détaillé
  • '""""""""""""""""""""""
  • bd.Provider = "Microsoft.jet.oledb.4.0"
  • bd.ConnectionString = App.Path & "\data.mdb"
  • bd.Open
  • cmdado.ActiveConnection = Me.bd
  • cmdado.CommandText = "select * from carnetdadresse"
  • tb.CursorLocation = adUseClient
  • tb.CursorType = adOpenDynamic
  • tb.LockType = adLockPessimistic
  • tb.Open cmdado
  • lstview1.ListItems.Clear
  • lstview1.ColumnHeaders.Clear
  • lstview1.ColumnHeaders.Add , , "Incasso", (lstview1.Width * (2 / 22)), lvwColumnLeft
  • lstview1.ColumnHeaders.Add , , "Persone entrate", (lstview1.Width * (2 / 15)), lvwColumnLeft
  • lstview1.ColumnHeaders.Add , , "Vendite", (lstview1.Width * (2 / 15)), lvwColumnLeft
  • lstview1.ColumnHeaders.Add , , "casa", (lstview1.Width * (2 / 30)), lvwColumnLeft
  • lstview1.ColumnHeaders.Add , , "Giorno", (lstview1.Width * (3 / 20)), lvwColumnLeft
  • lstview1.ColumnHeaders.Add , , "Mese", (lstview1.Width * (2 / 30)), lvwColumnLeft
  • lstview1.ColumnHeaders.Add , , "Anno", (lstview1.Width * (3 / 20)), lvwColumnLeft
  • lstview1.View = lvwReport
  • cmdado.CommandText = "select * from carnetdadresse"
  • tb.Requery
  • Call load_list
  • Me.Show
  • lng = Me.Width
  • lar = Me.Height
  • End Sub
  • Private Sub load_list()
  • Dim LstItem As ListItem
  • lstview1.ListItems.Clear
  • cmdado.CommandText = "select * from carnetdadresse"
  • tb.Requery
  • On Error Resume Next
  • While (Not tb.EOF)
  • If (tb.RecordCount <> 0) Then
  • Set LstItem = lstview1.ListItems.Add(, , CStr(tb!incasso))
  • If Not IsNull(tb!entrate) Then LstItem.SubItems(1) = CStr(tb!entrate)
  • If Not IsNull(tb!Vendite) Then LstItem.SubItems(2) = CStr(tb!Vendite)
  • If Not IsNull(tb!casa) Then LstItem.SubItems(3) = CStr(tb!casa)
  • If Not IsNull(tb!Giorno) Then LstItem.SubItems(4) = CStr(tb!Giorno)
  • If Not IsNull(tb!mese) Then LstItem.SubItems(5) = CStr(tb!mese)
  • If Not IsNull(tb!anno) Then LstItem.SubItems(6) = CStr(tb!anno)
  • End If
  • tb.MoveNext
  • Wend
  • End Sub
  • Private Sub lstview1_ColumnClick(ByVal ColumnHeader As MSComctlLib.ColumnHeader)
  • Dim Indexcol As Integer
  • Indexcol = ColumnHeader.Index
  • Select Case Indexcol
  • Case Is = 1
  • tb.Sort = "entrate ASC"
  • Case Is = 2
  • tb.Sort = "Vendite ASC"
  • Case Is = 3
  • tb.Sort = "casa ASC"
  • Case Is = 4
  • tb.Sort = "Giorno ASC"
  • Case Is = 4
  • tb.Sort = "mese ASC"
  • Case Is = 4
  • tb.Sort = "anno ASC"
  • End Select
  • Call load_list
  • End Sub
  • Private Sub lstview1_ItemClick(ByVal Itemselect As ListItem)
  • Dim IndexItem As Long
  • tb.MoveFirst
  • IndexItem = Itemselect.Index
  • tb.Move (IndexItem - 1)
  • On Error Resume Next
  • End Sub
  • Private Sub lstview1_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
  • If Button = 2 Then PopupMenu mnuFile
  • mnuFile.Visible = False
  • 'Met le menu Fichier en invisible
  • 'Met le menu Edit en invisible
  • End Sub
  • Private Sub mod_Click()
  • End Sub
  • Private Sub Option1_Click()
  • mese.Visible = True
  • anno.Visible = False
  • End Sub
  • Private Sub Option2_Click()
  • mese.Visible = False
  • anno.Visible = True
  • End Sub
  • Public Sub ImprimerListView(lvwSource As ListView, sTitre As String, sSousTitre As String, Optional ByVal sNomPolice As String = "Arial", Optional ByVal iTaillePolice As Integer = 10)
  • On Error GoTo Err_Main
  • Const lNB_MAX_ELEM_PAGE As Long = 35
  • Dim p As Printer
  • Dim lComptElem As Long
  • Dim liItem As ListItem
  • Dim idxCol As Integer
  • Dim lLargTot As Long
  • Dim lCurXtmp As Long, lCurYtmp As Long
  • Dim lNumPageCour As Long, lNbPages As Long
  • Dim sApplication As String, sDate As String
  • Dim lNbCarAff As Long
  • sTitre = UCase(Trim(sTitre))
  • sApplication = App.Title & " v" & CStr(App.Major) & "." & CStr(App.Minor) & "." & CStr(App.Revision)
  • sDate = Format(Now, "dd/mm/yyyy")
  • ' Calcul de la largeur totale des colonnes du listview
  • lLargTot = 0
  • For idxCol = 1 To lvwSource.ColumnHeaders.Count
  • lLargTot = lLargTot + lvwSource.ColumnHeaders(idxCol).Width
  • Next
  • ' Détermination du nombre de pages, initialisation du numéro de la première page
  • lNbPages = Int(lvwSource.ListItems.Count / lNB_MAX_ELEM_PAGE) + 1
  • lNumPageCour = 1
  • ' Instancie l'imprimante cible (imprimante par défaut)
  • Set p = Printer
  • ' Initialisation de la page
  • p.Orientation = vbPRORLandscape
  • p.Font = sNomPolice: p.FontSize = iTaillePolice
  • p.ScaleHeight = 100: p.ScaleWidth = 100
  • ' Positionne le titre et le sous-titre de la page
  • p.FontBold = True: p.CurrentX = 50 - (p.TextWidth(sTitre) / 2): p.CurrentY = 3: p.Print sTitre
  • p.FontBold = False: p.CurrentX = 90: p.CurrentY = 3: p.Print "Page " & CStr(lNumPageCour) & "/" & CStr(lNbPages)
  • p.FontBold = False: p.CurrentX = 50 - (p.TextWidth(sSousTitre)) / 2: p.CurrentY = 5: p.Print sSousTitre
  • ' Positionne les en-têtes de colonnes
  • p.CurrentX = 0
  • For idxCol = 1 To lvwSource.ColumnHeaders.Count
  • lCurXtmp = p.CurrentX
  • p.CurrentY = 10
  • If lvwSource.ColumnHeaders(idxCol).Width > 0 Then
  • p.FontBold = True: p.Print lvwSource.ColumnHeaders(idxCol).Text
  • End If
  • p.CurrentX = lCurXtmp + (lvwSource.ColumnHeaders(idxCol).Width * 100) / lLargTot
  • Next
  • p.Line (0, 13)-(100, 13)
  • ' Ajout des éléments
  • p.CurrentY = 14
  • lComptElem = 0
  • For Each liItem In lvwSource.ListItems
  • lCurYtmp = p.CurrentY
  • For idxCol = 1 To lvwSource.ColumnHeaders.Count
  • If lvwSource.ColumnHeaders(idxCol).Width > 0 Then
  • ' Détermine le nombre de caractères affichables
  • p.FontBold = False
  • lNbCarAff = Int(((lvwSource.ColumnHeaders(idxCol).Width * 100) / lLargTot) / p.TextWidth("A"))
  • If idxCol = 1 Then
  • lCurXtmp = 0
  • p.CurrentX = lCurXtmp
  • p.CurrentY = lCurYtmp
  • p.FontBold = False: p.Print Left(liItem.Text, lNbCarAff)
  • Else
  • lCurXtmp = lCurXtmp + (lvwSource.ColumnHeaders(idxCol - 1).Width * 100) / lLargTot
  • p.CurrentX = lCurXtmp
  • p.CurrentY = lCurYtmp
  • p.FontBold = False: p.Print Left(liItem.SubItems(idxCol - 1), lNbCarAff)
  • End If
  • Else
  • lCurXtmp = lCurXtmp + (lvwSource.ColumnHeaders(idxCol - 1).Width * 100) / lLargTot
  • End If
  • Next
  • ' Incrémente le nombre d'éléments imprimés
  • lComptElem = lComptElem + 1
  • If lComptElem = lNB_MAX_ELEM_PAGE Then
  • lComptElem = 0 ' Réinitialise le nomde d'élément ecrits
  • p.Line (0, 90)-(100, 90) ' Trace la ligne de fin de liste
  • p.CurrentX = 5: p.CurrentY = 93: p.FontBold = True: p.Print sApplication
  • p.CurrentX = 85: p.CurrentY = 93: p.FontBold = False: p.Print sDate
  • p.NewPage ' Change de page
  • lNumPageCour = lNumPageCour + 1
  • ' Positionne le titre et le sous-titre de la page
  • p.FontBold = True: p.CurrentX = 50 - (p.TextWidth(sTitre) / 2): p.CurrentY = 3: p.Print sTitre
  • p.FontBold = False: p.CurrentX = 90: p.CurrentY = 3: p.Print "Page " & CStr(lNumPageCour) & "/" & CStr(lNbPages)
  • p.FontBold = False: p.CurrentX = 50 - (p.TextWidth(sSousTitre)) / 2: p.CurrentY = 5: p.Print sSousTitre
  • ' Positionne les en-têtes de colonnes
  • p.CurrentX = 0
  • For idxCol = 1 To lvwSource.ColumnHeaders.Count
  • lCurXtmp = p.CurrentX
  • p.CurrentY = 10
  • If lvwSource.ColumnHeaders(idxCol).Width > 0 Then
  • p.FontBold = True
  • p.Print lvwSource.ColumnHeaders(idxCol).Text
  • p.FontBold = False
  • End If
  • p.CurrentX = lCurXtmp + (lvwSource.ColumnHeaders(idxCol).Width * 100) / lLargTot
  • Next
  • p.Line (0, 13)-(100, 13)
  • p.CurrentY = 14
  • End If
  • Next liItem
  • ' Ajoute le pied de page de la dernière page
  • p.Line (0, 90)-(100, 90) ' Trace la ligne de fin de liste
  • p.CurrentX = 5: p.CurrentY = 93: p.FontBold = True: p.Print sApplication
  • p.CurrentX = 85: p.CurrentY = 93: p.FontBold = False: p.Print sDate
  • p.EndDoc ' Lance l'impression du document créé
  • Fin:
  • On Error Resume Next
  • Set p = Nothing
  • Exit Sub
  • Err_Main:
  • If Not (p Is Nothing) Then p.KillDoc 'Annule l'impressino du document
  • MsgBox Err.Description, vbCritical, App.Title
  • Resume Fin
  • End Sub
  • Private Sub print_Click()
  • Form2.Show
  • End Sub
  • '------------------------------------------------------------------------------------------------------------------------------------------------------
  • Form 2
  • Private Sub Command1_Click()
  • Call Form1.ImprimerListView(Form1.lstview1, Text1, Text2)
  • End Sub
  • Private Sub Form_Load()
  • End Sub
'------------------------------------------------------------------------------------------------------------------------------------------------------
Form1


Option Explicit
Public bd As New ADODB.Connection
Public cmdado As New ADODB.Command
Public tb As New ADODB.Recordset
Dim msg1 As String
Dim lar As Long, lng As Long
Public db As Database
Public rs As Recordset
Public sql As String
Private Sub Command1_Click()

        tb.AddNew
          tb![incasso] = IIf(IsNull(txtincasso.Text), "", (txtincasso.Text))
          tb![entrate] = IIf(IsNull(txtentrate.Text), "", (txtentrate.Text))
          tb![Vendite] = IIf(IsNull(txtvendite.Text), "", (txtvendite.Text))
          tb![casa] = IIf(IsNull(txtcasa.Text), "", (txtcasa.Text))
          tb![Giorno] = IIf(IsNull(txtgiorno), "", (txtgiorno))
          tb![mese] = IIf(IsNull(txtmese), "", (txtmese))
          tb![anno] = IIf(IsNull(txtanno), "", (txtanno))
adresse:
         tb.Update
        Call load_list
End Sub

Private Sub Command2_Click()
If Option1.Value = True Then
lstview1.ListItems.Clear
Dim LstItem As ListItem
    cmdado.CommandText = "select * from carnetdadresse"
    tb.Requery
    On Error Resume Next
    While (Not tb.EOF)
      If (tb.RecordCount <> 0) Then
      If (tb!mese) = mese.Text Then
          Set LstItem = lstview1.ListItems.Add(, , CStr(tb!incasso))
          If Not IsNull(tb!entrate) Then LstItem.SubItems(1) = CStr(tb!entrate)
          If Not IsNull(tb!Vendite) Then LstItem.SubItems(2) = CStr(tb!Vendite)
             If Not IsNull(tb!casa) Then LstItem.SubItems(3) = CStr(tb!casa)
           If Not IsNull(tb!Giorno) Then LstItem.SubItems(4) = CStr(tb!Giorno)
             If Not IsNull(tb!mese) Then LstItem.SubItems(5) = CStr(tb!mese)
             If Not IsNull(tb!anno) Then LstItem.SubItems(6) = CStr(tb!anno)
      Else
          End If
          End If
      tb.MoveNext
    Wend
    Else
lstview1.ListItems.Clear
    cmdado.CommandText = "select * from carnetdadresse"
    tb.Requery
    On Error Resume Next
    While (Not tb.EOF)
      If (tb.RecordCount <> 0) Then
      If (tb!anno) = anno.Text Then
          Set LstItem = lstview1.ListItems.Add(, , CStr(tb!incasso))
          If Not IsNull(tb!entrate) Then LstItem.SubItems(1) = CStr(tb!entrate)
          If Not IsNull(tb!Vendite) Then LstItem.SubItems(2) = CStr(tb!Vendite)
             If Not IsNull(tb!casa) Then LstItem.SubItems(3) = CStr(tb!casa)
           If Not IsNull(tb!Giorno) Then LstItem.SubItems(4) = CStr(tb!Giorno)
             If Not IsNull(tb!mese) Then LstItem.SubItems(5) = CStr(tb!mese)
             If Not IsNull(tb!anno) Then LstItem.SubItems(6) = CStr(tb!anno)
      Else
          End If
          End If
      tb.MoveNext
    Wend
    End If
End Sub

Private Sub Command3_Click()
Form2.Show
End Sub

Private Sub Command4_Click()
     On Error GoTo Err_Main
          If (tb.RecordCount > 0) Then
            tb.Delete
            tb.Update
            tb.Requery
            Call load_list
                Else
Err_Main:
MsgBox "errore devi selezionare un Item"
End If
End Sub

Private Sub Command5_Click()
 If Me.Height = "13710" Then
 Me.Height = "11100"
 Else
 Me.Height = "13710"
 End If
End Sub

Private Sub del_Click()
     On Error GoTo Err_Main
          If (tb.RecordCount > 0) Then
            tb.Delete
            tb.Update
            tb.Requery
            Call load_list
                Else
Err_Main:
MsgBox "errore devi selezionare un Item"
End If
End Sub

Private Sub Form_Load()
Me.Height = "11100"
mnuFile.Visible = False
Data = Date
     Dim i As Long
     ' Sélection du mode détaillé
     Me.lstview1.View = lvwReport
     ' Création des colonnes
     Me.lstview1.ColumnHeaders.Add 1, , "Incasso"
     Me.lstview1.ColumnHeaders.Add 2, , "Persone entrate"
     Me.lstview1.ColumnHeaders.Add 3, , "Vendite"
     Me.lstview1.ColumnHeaders.Add 4, , "Casa"
     Me.lstview1.ColumnHeaders.Add 5, , "Giorno"
     Me.lstview1.ColumnHeaders.Add 5, , "Mese"
     Me.lstview1.ColumnHeaders.Add 5, , "Anno"
     
     For i = 1 To 8

         Me.lstview1.ListItems.Add i, , "Valeur " & CStr(i) & ",1"
         Me.lstview1.ListItems(i).SubItems(1) = "Valeur " & CStr(i) & ",2"
         Me.lstview1.ListItems(i).SubItems(2) = "Valeur " & CStr(i) & ",3"
         Me.lstview1.ListItems(i).SubItems(3) = "Valeur " & CStr(i) & ",4"
         Me.lstview1.ListItems(i).SubItems(4) = "Valeur " & CStr(i) & ",5"
         Me.lstview1.ListItems(i).SubItems(5) = "Valeur " & CStr(i) & ",6"
         Me.lstview1.ListItems(i).SubItems(6) = "Valeur " & CStr(i) & ",7"
     Next i
     ' Sélection du mode détaillé

       '""""""""""""""""""""""
             bd.Provider = "Microsoft.jet.oledb.4.0"
        bd.ConnectionString = App.Path & "\data.mdb"
        bd.Open
        cmdado.ActiveConnection = Me.bd
        cmdado.CommandText = "select * from carnetdadresse"
        tb.CursorLocation = adUseClient
        tb.CursorType = adOpenDynamic
        tb.LockType = adLockPessimistic
        tb.Open cmdado
        lstview1.ListItems.Clear
        lstview1.ColumnHeaders.Clear
        lstview1.ColumnHeaders.Add , , "Incasso", (lstview1.Width * (2 / 22)), lvwColumnLeft
        lstview1.ColumnHeaders.Add , , "Persone entrate", (lstview1.Width * (2 / 15)), lvwColumnLeft
        lstview1.ColumnHeaders.Add , , "Vendite", (lstview1.Width * (2 / 15)), lvwColumnLeft
        lstview1.ColumnHeaders.Add , , "casa", (lstview1.Width * (2 / 30)), lvwColumnLeft
        lstview1.ColumnHeaders.Add , , "Giorno", (lstview1.Width * (3 / 20)), lvwColumnLeft
        lstview1.ColumnHeaders.Add , , "Mese", (lstview1.Width * (2 / 30)), lvwColumnLeft
        lstview1.ColumnHeaders.Add , , "Anno", (lstview1.Width * (3 / 20)), lvwColumnLeft
        
        lstview1.View = lvwReport

        cmdado.CommandText = "select * from carnetdadresse"
        tb.Requery
        Call load_list
        Me.Show
        lng = Me.Width
        lar = Me.Height
        

End Sub
Private Sub load_list()
Dim LstItem As ListItem
    lstview1.ListItems.Clear
    cmdado.CommandText = "select * from carnetdadresse"
    tb.Requery
    On Error Resume Next
    While (Not tb.EOF)
      If (tb.RecordCount <> 0) Then
          Set LstItem = lstview1.ListItems.Add(, , CStr(tb!incasso))
          If Not IsNull(tb!entrate) Then LstItem.SubItems(1) = CStr(tb!entrate)
          If Not IsNull(tb!Vendite) Then LstItem.SubItems(2) = CStr(tb!Vendite)
             If Not IsNull(tb!casa) Then LstItem.SubItems(3) = CStr(tb!casa)
           If Not IsNull(tb!Giorno) Then LstItem.SubItems(4) = CStr(tb!Giorno)
             If Not IsNull(tb!mese) Then LstItem.SubItems(5) = CStr(tb!mese)
             If Not IsNull(tb!anno) Then LstItem.SubItems(6) = CStr(tb!anno)
          End If
      tb.MoveNext
    Wend
End Sub

Private Sub lstview1_ColumnClick(ByVal ColumnHeader As MSComctlLib.ColumnHeader)
         Dim Indexcol As Integer
            Indexcol = ColumnHeader.Index
            Select Case Indexcol
                Case Is = 1
                    tb.Sort = "entrate ASC"
                Case Is = 2
                    tb.Sort = "Vendite ASC"

                Case Is = 3
                    tb.Sort = "casa ASC"
                
                Case Is = 4
                    tb.Sort = "Giorno ASC"
                    
                Case Is = 4
                    tb.Sort = "mese ASC"
                Case Is = 4
                    tb.Sort = "anno ASC"
                End Select
            Call load_list
End Sub

Private Sub lstview1_ItemClick(ByVal Itemselect As ListItem)
       Dim IndexItem As Long
          tb.MoveFirst
          IndexItem = Itemselect.Index
          tb.Move (IndexItem - 1)
          On Error Resume Next

End Sub

Private Sub lstview1_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
If Button = 2 Then PopupMenu mnuFile
mnuFile.Visible = False
'Met le menu Fichier en invisible
'Met le menu Edit en invisible
End Sub

Private Sub mod_Click()

End Sub

Private Sub Option1_Click()
mese.Visible = True
anno.Visible = False
End Sub

Private Sub Option2_Click()
mese.Visible = False
anno.Visible = True
End Sub
 Public Sub ImprimerListView(lvwSource As ListView, sTitre As String, sSousTitre As String, Optional ByVal sNomPolice As String = "Arial", Optional ByVal iTaillePolice As Integer = 10)

     On Error GoTo Err_Main
     Const lNB_MAX_ELEM_PAGE As Long = 35
     Dim p As Printer
     Dim lComptElem As Long
     Dim liItem As ListItem
     Dim idxCol As Integer
     Dim lLargTot As Long
     Dim lCurXtmp As Long, lCurYtmp As Long
     Dim lNumPageCour As Long, lNbPages As Long
     Dim sApplication As String, sDate As String
     Dim lNbCarAff As Long

     sTitre = UCase(Trim(sTitre))
     sApplication = App.Title & " v" & CStr(App.Major) & "." & CStr(App.Minor) & "." & CStr(App.Revision)
     sDate = Format(Now, "dd/mm/yyyy")
     ' Calcul de la largeur totale des colonnes du listview
     lLargTot = 0
     For idxCol = 1 To lvwSource.ColumnHeaders.Count
         lLargTot = lLargTot + lvwSource.ColumnHeaders(idxCol).Width
     Next
     ' Détermination du nombre de pages, initialisation du numéro de la première page
     lNbPages = Int(lvwSource.ListItems.Count / lNB_MAX_ELEM_PAGE) + 1
    lNumPageCour = 1

     ' Instancie l'imprimante cible (imprimante par défaut)
     Set p = Printer

     ' Initialisation de la page
     p.Orientation = vbPRORLandscape
     p.Font = sNomPolice: p.FontSize = iTaillePolice
     p.ScaleHeight = 100: p.ScaleWidth = 100

     ' Positionne le titre et le sous-titre de la page
     p.FontBold = True: p.CurrentX = 50 - (p.TextWidth(sTitre) / 2): p.CurrentY = 3: p.Print sTitre
     p.FontBold = False: p.CurrentX = 90: p.CurrentY = 3: p.Print "Page " & CStr(lNumPageCour) & "/" & CStr(lNbPages)
     p.FontBold = False: p.CurrentX = 50 - (p.TextWidth(sSousTitre)) / 2: p.CurrentY = 5: p.Print sSousTitre

     ' Positionne les en-têtes de colonnes
     p.CurrentX = 0
     For idxCol = 1 To lvwSource.ColumnHeaders.Count
         lCurXtmp = p.CurrentX
         p.CurrentY = 10
If lvwSource.ColumnHeaders(idxCol).Width > 0 Then
             p.FontBold = True: p.Print lvwSource.ColumnHeaders(idxCol).Text
End If
         p.CurrentX = lCurXtmp + (lvwSource.ColumnHeaders(idxCol).Width * 100) / lLargTot
     Next
     p.Line (0, 13)-(100, 13)

     ' Ajout des éléments
     p.CurrentY = 14
     lComptElem = 0
     For Each liItem In lvwSource.ListItems
         lCurYtmp = p.CurrentY
         For idxCol = 1 To lvwSource.ColumnHeaders.Count
If lvwSource.ColumnHeaders(idxCol).Width > 0 Then
                 ' Détermine le nombre de caractères affichables
                 p.FontBold = False
                 lNbCarAff = Int(((lvwSource.ColumnHeaders(idxCol).Width * 100) / lLargTot) / p.TextWidth("A"))
If idxCol = 1 Then
                     lCurXtmp = 0
                     p.CurrentX = lCurXtmp
                     p.CurrentY = lCurYtmp
                     p.FontBold = False: p.Print Left(liItem.Text, lNbCarAff)
Else
                     lCurXtmp = lCurXtmp + (lvwSource.ColumnHeaders(idxCol - 1).Width * 100) / lLargTot
                     p.CurrentX = lCurXtmp
                     p.CurrentY = lCurYtmp
                     p.FontBold = False: p.Print Left(liItem.SubItems(idxCol - 1), lNbCarAff)
End If
Else
                 lCurXtmp = lCurXtmp + (lvwSource.ColumnHeaders(idxCol - 1).Width * 100) / lLargTot
End If
         Next

         ' Incrémente le nombre d'éléments imprimés
         lComptElem = lComptElem + 1

If lComptElem = lNB_MAX_ELEM_PAGE Then
             lComptElem = 0 ' Réinitialise le nomde d'élément ecrits
             p.Line (0, 90)-(100, 90) ' Trace la ligne de fin de liste
             p.CurrentX = 5: p.CurrentY = 93: p.FontBold = True: p.Print sApplication
             p.CurrentX = 85: p.CurrentY = 93: p.FontBold = False: p.Print sDate
             p.NewPage ' Change de page
             lNumPageCour = lNumPageCour + 1
             ' Positionne le titre et le sous-titre de la page
             p.FontBold = True: p.CurrentX = 50 - (p.TextWidth(sTitre) / 2): p.CurrentY = 3: p.Print sTitre
             p.FontBold = False: p.CurrentX = 90: p.CurrentY = 3: p.Print "Page " & CStr(lNumPageCour) & "/" & CStr(lNbPages)
             p.FontBold = False: p.CurrentX = 50 - (p.TextWidth(sSousTitre)) / 2: p.CurrentY = 5: p.Print sSousTitre
             ' Positionne les en-têtes de colonnes
             p.CurrentX = 0
             For idxCol = 1 To lvwSource.ColumnHeaders.Count
                 lCurXtmp = p.CurrentX
                 p.CurrentY = 10
If lvwSource.ColumnHeaders(idxCol).Width > 0 Then
                     p.FontBold = True
                     p.Print lvwSource.ColumnHeaders(idxCol).Text
                     p.FontBold = False
End If
                 p.CurrentX = lCurXtmp + (lvwSource.ColumnHeaders(idxCol).Width * 100) / lLargTot
             Next
             p.Line (0, 13)-(100, 13)
             p.CurrentY = 14
End If
     Next liItem

     ' Ajoute le pied de page de la dernière page
     p.Line (0, 90)-(100, 90) ' Trace la ligne de fin de liste
     p.CurrentX = 5: p.CurrentY = 93: p.FontBold = True: p.Print sApplication
     p.CurrentX = 85: p.CurrentY = 93: p.FontBold = False: p.Print sDate

     p.EndDoc ' Lance l'impression du document créé

Fin:
     On Error Resume Next
     Set p = Nothing
     Exit Sub

Err_Main:
     If Not (p Is Nothing) Then p.KillDoc 'Annule l'impressino du document
     MsgBox Err.Description, vbCritical, App.Title
     Resume Fin
 End Sub

Private Sub print_Click()
Form2.Show
End Sub
'------------------------------------------------------------------------------------------------------------------------------------------------------
Form 2
Private Sub Command1_Click()
Call Form1.ImprimerListView(Form1.lstview1, Text1, Text2)
End Sub

Private Sub Form_Load()

End Sub

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Historique

25 janvier 2007 17:08:34 :
TITRE

Commentaires et avis

signaler à un administrateur
Commentaire de MadM@tt le 25/01/2007 18:35:18

Tu devrais un peu paufiner tes codes source avant de les partager. Ici le but n'est pas de gagner un maximum de points, mais de partager du savoir.
Des sources comme la tienne il en existe des tonnes, alors fait la au moins propre avant de la poster (sans parler de ta source "dessiner" que tu as posté juste avant).
C'est à dire plus d'explications, de commentaires, présentation des avantages de ta source par rapport au milliers d'autres qui existent déjà et qui font la meme chose, et surtout passe la en français avant.
Que tu l'ai fait pour une italienne, ok, mais c'est pas ça qui t'empeche de la traduire.

Bonne continuation

signaler à un administrateur
Commentaire de phpnuke le 26/01/2007 09:51:56

Alors je voulait juste te dire MadM@tt les points ne m'interesse pas du tout je voit pas ce que j'y gagne en plus avoir ton aprobation j'en ais encore moin besoint car un je ne te connait pas et je n'ais pas tellement envil de me faire "chier dessus" comme cela ce dit en Italien, si tu veut me le dire au moin toi apprend a être plus simpas sinon on ne t'ecoute pas

signaler à un administrateur
Commentaire de drissou le 26/01/2007 11:04:48

PHPNUKE

MADM@TT est un "fournisseur" éclairé de sources sur ce site et tu devrais un peu te calmer et regarder son travail qui pourrait sans problème te servir.
te déclarer débutant ne te donne pas le droit de faire des réponses désagréables à ceux qui se donnent la peine de regarder tes sources.
Tu as déjà fait une mauvaise réflexion dans ton autre envoi.

Pour ma part 3 remarques sur ton travail.
1. le titre de ton post est un peu vague "BDD avec recherche" : recherche de quoi ?
2. pas la peine de mettre dans le champ source. ton zip est là pour cela.
3. Quel est l'intérêt de mettre les variables et intitulés de tes msgbox en italien ?

Drissou

signaler à un administrateur
Commentaire de drissou le 26/01/2007 11:07:21

PHPNUKE,

je viens de relire ta réponse  et je viens de voir que tu es italien, alors ne tiens pas compte de mon 3 ème point

Drissou

signaler à un administrateur
Commentaire de phpnuke le 26/01/2007 11:09:50

atta drissou  tu n'as poster auqu'une source la raison pour la quelle j'ai mis mes variables en Italien et que je le parle beaucoups mieux donc je ne me gene pas par a port a tes critique merci je vait arranger cela dans mes prochaines sources tout ce que je demande moi ce sonts des critique constructives et non destructives tu ne trouverait pas cela mieux attand de poster ta premierre source et on verras et un fournisseur eclairé avec 48 sources c un peut maigre tu ne trouve pas ???

signaler à un administrateur
Commentaire de drissou le 26/01/2007 11:54:12

PHPNUKE,
Je pense que tu n'as pas bien regardé le niveau des sources de MADM@MATT, la qualité de ses sites.
je pense que une seule de ses sources vaut très largement toutes les tiennes. j'ai même honte de les comparer.
Alors , pour ma part, je n'ai effectivement pas posté de source mais justement je reste humble par rapport à cela.
je ne joue pas au matamore..
Alors j'espère pour toi que quelqu'un voudra bien te donner des remarques constructives ou destructives comme tu dis.
PLONG

signaler à un administrateur
Commentaire de MadM@tt le 26/01/2007 14:46:25

lol hééé excuse moi j'ai peut etre été direct mais je voulais pas te "démolir".

J'ai donné des remarques constructives (dans le sens : elle doivent te servir à améliorer les codes que tu poste). Je te les redonne en moins énervé :
- paufine ton code
- met plus de commentaires
- ecrit en français, ou alors commente chaque mot italien, car pas tout le monde peut comprendre cette langue (je précise au passage que je n'ai rien contre les italien, j'en suis d'origine)
- Présente ta source, ici la seule chose que tu as dit c'est que tu as précisé que tu était débutant, à l'avenir explique bien ce que fait ta source, notamment avantages/inconvénients, car des sources comme la tienne, je me répète, il en existe déjà beaucoup.

Bon j'ai pas regardé le code en détail, mais tout ce genre de commentaires que je t'ai fait, ça concerne la présentation de la source, et c'est super important si tu veux que les autres aient envie de regarder ton code et de t'aider à progresser.
La ce que l'on voit en ouvrant cette page, c'est quelqu'un qui balance son code n'importe comment, sans vraiment l'avoir préparé, pour voir ce que vont dire les autres. (en tout cas c'est l'impression que j'ai eu)
Tu peux la présenter de telle façon qu'on ai envie de t'aider, et tu verra derrière pas mal de monde reliront ton code et t'aideront à l'améliorer.

Sinon je ne me crois pas pour ce que je ne suis pas, j'apprend toujours autant que toi, et dans les sources que je poste je fait de mon mieux pour qu'elle soient claire et utiles. Car meme si une source existe en plusieurs exemplaires, ceux qui veulent apprendre chercheront toujours la plus claire, meme si c'est qu'une pale copie d'une copie. Voilà où peut se trouver l'avantage de ta source si tu y met du tiens.

Sinon Drissou, je ne sais que dire à part merci ^^, ça fait plaisir ;)

Voilà encore une fois je ne voulais pas te démolir, mais des sources comme la tienne y'en arrive souvent, et la moitié du temps ceux qui l'ont posté ne reviennent jamais lire les commentaires donc on se retrouve avec plein de déchets.

A bon entendeur, bonne continuation
MadMatt

signaler à un administrateur
Commentaire de drissou le 26/01/2007 18:37:44

Ok ;o)

signaler à un administrateur
Commentaire de gagou9 le 26/01/2007 19:21:05

salut!
un chti truc a propos d'une remarque de Drissou, perso, je trouve bien que le code, s'il est simple, soit affiché, ça permet de le voir directement, sans télécharger (bien que maintenant files.codessources.com soit tout a fait au point!)

voila!

a bientôt !

Gagou

signaler à un administrateur
Commentaire de phpnuke le 27/01/2007 15:24:13

Merci MadM@tt  au fait tu as raison TOTALLEMENT
Le truc et que je lais ballencer la juste pour continuer une source que j'avait trouver mais ne retrouvant pas le nom de la source j'ai fait un nouveau post (je sait ce n'et pas une excuse) Mais merci je suiverait tes consseil et desoler pour mon francait il et a chier je sait mais je n'ais plus l'abitude je me debrouille mieux en Italien et autres

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Recherche dans une base de donnée a l'aide de 'Seek' [ par Arion ] Comment utiliser la méthode Seek ? Aide sur les Bdd!! URGENT! [ par NeOpHyTe57 ] Bonjour !Voila suis méga dans les choux! Je dois absolument faire un espece de moteur de recherche pour une base de donné qui se présente comme caNom recherche dans base de donnée [ par kenavo27 ] Bonjour, je voudrais savoir comment désigné le dernier enregistrement d'un objet recordset. Je ne parle pas de "enregistrement.EOF", mais de l'enregis recherche multiple sur base de donnée [ par alexius ] Bonjour tou le monde, je me presente je suis étudiants en bts informatique de gestion et suis actuellement en stage.le projet qui m'a été donnée est l recherche dans base de donnée [ par seb41 ] comment faire une recherche sur deux chanp concatenés en utilisan adoj 'ai trouvé une méthode find mais j 'arrive pas a la configurer pour chercher da recherche dans une base de donnée access [ par masterdarkcloud ] je fais un jeu de carte (genre magic) et je veux incorporé une base de donné dans mon projet.Ce que je veux en fait:J'ai mis le numéro de la carte dan Base de donnée - menu de recherche [ par mick1819 ] Hello Je dois faire une petite application qui permet de gérer un stock. J'ai connecté mon application avec une base de données accès. J'ai réussi a f Recherche sur tout une base de donnée [ par Cardosi ] Bonjour, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; J'aimerais savoir si il est possible d'effectuer une recherche sur tout une base de donn&#233;e. Pour importation d'une base de donnée Access sous VB6 [ par fred2ld ] Bonjour, voila j'ai un fichier News.Bdd et je souhaite creer le fichier Nouveaux.bdd.Je souhaite avoir les meme table et les meme champs mais sans&nbs Datagrid et 2 BDD [ par Gsquad ] Bonjour tout frais tout neuf en VB et&nbsp; ayant le niveau d'un poulpe, je dois dans pas tr&#232;s logntemps developper une application concernant la


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode