alias666
Messages postés308Date d'inscriptionmardi 1 juin 2004StatutMembreDernière intervention23 mars 2010
-
2 juin 2004 à 10:25
alias666
Messages postés308Date d'inscriptionmardi 1 juin 2004StatutMembreDernière intervention23 mars 2010
-
2 juin 2004 à 15:15
blissdumpweed
Messages postés79Date d'inscriptionjeudi 15 avril 2004StatutMembreDernière intervention 8 juin 2004 2 juin 2004 à 11:20
Pour ajouter des lignes dans un ListView, tu fais :
'mitem est un nom que tu donne comme tu veux
Set mitem = ListView1.ListItems.Add()
mitem.Text = N°Client
mitem.SubItems(1) = Nom
mitem.SubItems(2) = Adresse
mitem.SubItems(3) = CP
mitem.SubItems(4) = Ville
mitem.SubItems(5) = Tel
mitem.SubItems(6) = FAx
tu mets ca dans une boucle For jusqu'à ton nombre total d'enregistrements
Tu n'as pas MSDN?! ca pourrai bien t'aider !
alias666
Messages postés308Date d'inscriptionmardi 1 juin 2004StatutMembreDernière intervention23 mars 2010 2 juin 2004 à 11:41
Pffff serieux MSDN ca m'a aidé mais ca me sort dla merde ya kedal meme pas une piste alors kestu ve ke je fasse kan jvoi des gens ki yarrive parcekil on la logique moi ca me tue meme si chui bon autre part mais bon la voila koi.
Mainteant le projet me sort : Erreur de complitation "nom externe non défini" avec N°Client en surbrillance
Ca me saoule c'est a l'ordinateur de comprendre l'homme merde :)
alias666
Messages postés308Date d'inscriptionmardi 1 juin 2004StatutMembreDernière intervention23 mars 2010 2 juin 2004 à 11:47
dans 1 module g ca
'Déclaration des objets'
Global Db As Database
Global Dbname As String
Global Const Fichierini As String = "\TestBaseDonnée.ini"
Global Rst As Recordset
'Procédure de chargement des clients'
Public Sub ChargeClients(C1 As Control)
'énumération des enregistrements'
Dim Rst As Recordset, Xp As String * 25, Xp2 As String * 30
C1.Clear
Screen.MousePointer = vbHourglass
'Ouverture de la table client'
Set Rst = Db.OpenRecordset("Clients", dbOpenTable)
'Fixation de la recherche sur la clé primaire'
Rst.Index = "PrimaryKey"
'Parcours des enregistrements'
While Not Rst.EOF
'Affichage des enregistrements dans la listebox' LSet Xp IIf(IsNull(Rst!nom) Or Rst!nom "", "", Rst!nom) LSet Xp2 IIf(IsNull(Rst!Ville) Or Rst!Ville "", "", Rst!Ville)
C1.AddItem Xp & " " & Xp2
C1.ItemData(C1.NewIndex) = Rst![N°Client]
'Boucle'
Rst.MoveNext
Wend
Rst.Close
Screen.MousePointer = vbDefault
End Sub
Dans la form g ca:
Option Explicit
Private Sub Form_Load()
'Chargement de la base de données'
Dbname = NomBase
Set Db = DBEngine.OpenDatabase(Dbname)
Set Rst = ListView1.ListItems.Add()
Rst.Text = [N°Client]
Rst.SubItems(1) = nom
Rst.SubItems(2) = adresse
Rst.SubItems(3) = cp
Rst.SubItems(4) = Ville
Rst.SubItems(5) = Tel
Rst.SubItems(6) = Fax
End Sub
et dans un autre module g ca :
Function Existe(Fichier As String) As Boolean
If Dir(Fichier) = "" Then
Existe = False
Else
Existe = True
End If
End Function
Function NomBase() As String
Dim Ligne As String
'Création du fichier INI'
If Not Existe(App.Path & Fichierini) Then
frmAccueil.cmdRec.Filter = "Base de donnée (*.mdb)|*.mdb|"
frmAccueil.cmdRec.ShowOpen
NomBase = frmAccueil.cmdRec.FileName
Open App.Path & Fichierini For Output As #1
Print #1, "[Chemin base]"
Print #1, NomBase
Close #1
Else
'Connection à la base de données via .ini'
Open App.Path & Fichierini For Input As #1
Line Input #1, Ligne
Line Input #1, Ligne
NomBase = Ligne
Close #1
End If
End Function
blissdumpweed
Messages postés79Date d'inscriptionjeudi 15 avril 2004StatutMembreDernière intervention 8 juin 2004 2 juin 2004 à 11:53
Oula c'est pas mon genre de programmation ca ! Moi les BD je les utilises avec l'objet ADODC...
Bon, est ce que t'as au moins essayé d'afficher des données de ta BD dans une TextBox ? Parce que déjà ca si ca marche pas c'est plutot ta connection à la BD qui est pas bonne !
et,
Rst.Text = [N°Client]
Rst.SubItems(1) = nom
Rst.SubItems(2) = adresse
Rst.SubItems(3) = cp
Rst.SubItems(4) = Ville
Rst.SubItems(5) = Tel
Rst.SubItems(6) = Fax
Tout ca c'est les noms de tes champs bien orthographiés ?
alias666
Messages postés308Date d'inscriptionmardi 1 juin 2004StatutMembreDernière intervention23 mars 2010 2 juin 2004 à 11:56
Ouais j'ai réussi pas a partir de cette structure a afficher dans une listebox mais bon on ma di kil falé dans une listview et c la ke ca merde :s
Sinon c bien ortographié tkt pas ;)
alias666
Messages postés308Date d'inscriptionmardi 1 juin 2004StatutMembreDernière intervention23 mars 2010 2 juin 2004 à 12:02
ok moi chui en stage jvé manger bientot et je revien ver les 13h15-13h30 merci kan mm de te pencher sur le probleme c'est rare d gens comme ca malheuresment :s
alias666
Messages postés308Date d'inscriptionmardi 1 juin 2004StatutMembreDernière intervention23 mars 2010 2 juin 2004 à 12:11
bon g changer kelketruc ki pouront peut etre t'aider...
FORM1:
Option Explicit
Private Sub Form_Load()
'Chargement de la base de données'
Dbname = NomBase
Set Db = DBEngine.OpenDatabase(Dbname)
'Appel de la procédure'
Call ChargeClients(ListView1)
Set Rst = ListView1.ListItems.Add()
Rst.Text = [N°Client]
Rst.SubItems(1) = nom
Rst.SubItems(2) = adresse
Rst.SubItems(3) = cp
Rst.SubItems(4) = Ville
Rst.SubItems(5) = Tel
Rst.SubItems(6) = Fax
End Sub
Private Sub ListView1_BeforeLabelEdit(Cancel As Integer)
'Chargement de la liste des clients'
If ListeView1.ListIndex > -1 Then
Set Rst = Db.OpenRecordset("select * from Clients where [N°Client]=" & ListView1.ItemData(ListView1.ListIndex), dbOpenSnapshot)
If Not Rst.EOF Then
nom.Text = IIf(IsNull(Rst!nom), "", Rst!nom)
adresse.Text = IIf(IsNull(Rst!adresse), "", Rst!adresse)
cp.Text = IIf(IsNull(Rst!cp), "", Rst!cp)
Ville.Text = IIf(IsNull(Rst!Ville), "", Rst!Ville)
Tel.Text = IIf(IsNull(Rst!Tel), "", Rst!Tel)
Fax.Text = IIf(IsNull(Rst!Fax), "", Rst!Fax)
End If
Rst.Close
End If
End Sub
MODULE 1
Option Explicit
Function Existe(Fichier As String) As Boolean
If Dir(Fichier) = "" Then
Existe = False
Else
Existe = True
End If
End Function
Function NomBase() As String
Dim Ligne As String
'Création du fichier INI'
If Not Existe(App.Path & Fichierini) Then
frmAccueil.cmdRec.Filter = "Base de donnée (*.mdb)|*.mdb|"
frmAccueil.cmdRec.ShowOpen
NomBase = frmAccueil.cmdRec.FileName
Open App.Path & Fichierini For Output As #1
Print #1, "[Chemin base]"
Print #1, NomBase
Close #1
Else
'Connection à la base de données via .ini'
Open App.Path & Fichierini For Input As #1
Line Input #1, Ligne
Line Input #1, Ligne
NomBase = Ligne
Close #1
End If
End Function
MODULE2:
Option Explicit
'Déclaration des objets'
Global Db As Database
Global Dbname As String
Global Const Fichierini As String = "\TestBaseDonnée.ini"
Global Rst As Recordset
'Procédure de chargement des clients'
Public Sub ChargeClients(C1 As Control)
'énumération des enregistrements'
Dim Rst As Recordset, Xp As String * 25, Xp2 As String * 30
C1.Clear
Screen.MousePointer = vbHourglass
'Ouverture de la table client'
Set Rst = Db.OpenRecordset("Clients", dbOpenTable)
'Fixation de la recherche sur la clé primaire'
Rst.Index = "PrimaryKey"
'Parcours des enregistrements'
While Not Rst.EOF
'Affichage des enregistrements dans la listebox' LSet Xp IIf(IsNull(Rst!nom) Or Rst!nom "", "", Rst!nom) LSet Xp2 IIf(IsNull(Rst!Ville) Or Rst!Ville "", "", Rst!Ville)
C1.AddItem Xp & " " & Xp2
C1.ItemData(C1.NewIndex) = Rst![N°Client]
'Boucle'
Rst.MoveNext
Wend
Rst.Close
Screen.MousePointer = vbDefault
End Sub
blissdumpweed
Messages postés79Date d'inscriptionjeudi 15 avril 2004StatutMembreDernière intervention 8 juin 2004 2 juin 2004 à 13:17
A mon avis, le problème c'est que tu n'as pas configuré ton ListView. Parce que là tu lui demande de mettre des données dedans mais il ne sait pas où ni comment (il est pas malin !).
Si j'ai raison, fais un clique droit sur ta ListView. Sélectionne Propriétés. Ensuite dans la zone View tu sélectionnes 3 - lvwReport et dans l'onglet En-têtes de colonnes tu en insères 7 avec les noms que tu veux !