curvi
Messages postés5Date d'inscriptiondimanche 20 mai 2007StatutMembreDernière intervention17 juin 2012
-
28 oct. 2010 à 03:06
curvi
Messages postés5Date d'inscriptiondimanche 20 mai 2007StatutMembreDernière intervention17 juin 2012
-
29 oct. 2010 à 10:56
Bonjour, dans mon programme j'ai une datagrid j'utilise une base access , quand je clique sur précèdent ou suivant ou debut ou dernier je veux que les valeurs des colonnes seront dans leurs textbox respectifs et que le curseur de la datagrid se déplace en même temps selon le bouton que l'on a active, comment faire pour ecrire de tel code ?
merci .
curvi
Messages postés5Date d'inscriptiondimanche 20 mai 2007StatutMembreDernière intervention17 juin 2012 28 oct. 2010 à 10:21
Bonjour,
merci pour ton aide , je suis encore débutant je vous envoie mon code
si vous pouvez les corriger je comprendrai beaucoup mieux merci
Public Class form1
Dim inc As Integer
Dim con As New OleDb.OleDbConnection
Dim dbProvider As String
Dim dbSource As String
Dim ds As New DataSet
Dim da As OleDb.OleDbDataAdapter
Dim sql As String
Dim maxRows As Integer
Private Sub form1_Load_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.BASECARTETableAdapter.Fill(Me.Basecarte2003DataSet.BASECARTE)
dbProvider = "PROVIDER=Microsoft.Jet.OLEDB.4.0;"
dbSource "Data Source C:\vbnet\cartevisa\cartevisa\basecarte2003.mdb"
con.ConnectionString = dbProvider & dbSource
con.Open()
sql = "select * from BASECARTE"
da = New OleDb.OleDbDataAdapter(sql, con)
da.Fill(ds, "basecarte2003")
con.Close()
maxRows = ds.Tables("basecarte2003").Rows.Count
inc = -1
txtDatBanque.Visible = False
End Sub
Private Sub NavigateRecords()
lblRef.Text = ds.Tables("basecarte2003").Rows(inc).Item(1)
DTPicker2.Value = ds.Tables("basecarte2003").Rows(inc).Item(2)
txtNumCarte.Text = ds.Tables("basecarte2003").Rows(inc).Item(3)
txtAutorisation.Text = ds.Tables("basecarte2003").Rows(inc).Item(4)
txtMontant.Text = ds.Tables("basecarte2003").Rows(inc).Item(5)
DTPicker1.Value = ds.Tables("basecarte2003").Rows(inc).Item(6)
End Sub
Private Sub BtnArriere_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnArriere.Click
If inc > 0 Then
inc = inc - 1
NavigateRecords()
ElseIf inc = -1 Then
MsgBox("No Records Yet")
ElseIf inc = 0 Then
End If
End Sub
Private Sub btnNext_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnNext.Click
If inc <> maxRows - 1 Then
inc = inc + 1
NavigateRecords()
Else
End If
End Sub
Private Sub btnLast_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLast.Click
If inc <> maxRows - 1 Then
inc = maxRows - 1
NavigateRecords()
End If
End Sub
Private Sub btnFirst_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnFirst.Click
If inc <> 0 Then
inc = 0
NavigateRecords()
End If
End Sub
Private Sub btnUpdate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnUpdate.Click
Dim cb As New OleDb.OleDbCommandBuilder(da)
If txtNumVente.Text "" Or txtMontant.Text "" Then
MsgBox("remplir les cases vides")
Else
ds.Tables("basecarte2003").Rows(inc).Item(0) = lblRef.Text
ds.Tables("basecarte2003").Rows(inc).Item(1) = txtNumVente.Text
ds.Tables("basecarte2003").Rows(inc).Item(2) = DTPicker2.Value
ds.Tables("basecarte2003").Rows(inc).Item(3) = txtNumCarte.Text
ds.Tables("basecarte2003").Rows(inc).Item(4) = txtAutorisation.Text
ds.Tables("basecarte2003").Rows(inc).Item(5) = txtMontant.Text
ds.Tables("basecarte2003").Rows(inc).Item(6) = DTPicker1.Value
da.Update(ds, "basecarte2003")
MsgBox("Data updated")
End If
End Sub
Private Sub btnAddNew_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAddNew.Click
btnAddNew.Enabled = False
btnUpdate.Enabled = False
btnDelete.Enabled = False
txtNumVente.Clear()
txtMontant.Clear()
End Sub
Private Sub btnClear_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnClear.Click
' btnCommit.Enabled = False
btnAddNew.Enabled = True
btnUpdate.Enabled = True
btnDelete.Enabled = True
inc = 0
NavigateRecords()
End Sub
Private Sub btnDelete_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDelete.Click
If MessageBox.Show("Do you really want to Delete this Record?", _
"Delete", MessageBoxButtons.YesNo, _
MessageBoxIcon.Warning) = DialogResult.No Then
MsgBox("Operation Cancelled")
Exit Sub
End If
Dim cb As New OleDb.OleDbCommandBuilder(da)
cs_ELMABROUK
Messages postés4Date d'inscriptionvendredi 3 mars 2006StatutMembreDernière intervention29 octobre 2010 29 oct. 2010 à 04:50
mabrouki,salut curvi
voici ton code avec les corrections.bon code.
----------------------------------------------
Imports System
Imports System.Windows.Forms
Imports System.Windows.Forms.DataGrid
Imports System.Data.OleDb
Public Class form1
Dim inc As Integer
Dim con As OleDbConnection = New OleDbConnection
Dim dbProvider As String
Dim dbSource As String
Dim ds As DataSet = New DataSet
Dim da As OleDbDataAdapter = New OleDbDataAdapter
Dim sql As String
Dim maxRows As Integer
Public Sub New()
' Cet appel est requis par le Concepteur Windows Form.
InitializeComponent()
' Ajoutez une initialisation quelconque après l'appel InitializeComponent().
End Sub
Private Sub form1_Load_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'cette ligne ne sert à rien car tu as choisi de travailler par code
'tu as declare un dataset "ds" et "da" ils se chargent de tout
'de plus tu as code en dur dbProvider
con.ConnectionString = dbProvider & dbSource
con.Open()
'ici fais gaffe c'est le nom de la table dans la BD
sql = "select * from BASECARTE;"
da = New OleDb.OleDbDataAdapter(sql, con)
'ici le nom n'est qu'un alias facultatif
'pour la copie en memoire de la table
da.Fill(ds, "aliasBaseCarte2003")
End Sub
Private Sub NavigateRecords()
lblRef.Text = ds.Tables("aliasBaseCarte2003").Rows(inc).Item(1)
DTPicker2.Value = ds.Tables("aliasBaseCarte2003").Rows(inc).Item(2)
txtNumCarte.Text = ds.Tables("aliasBaseCarte2003").Rows(inc).Item(3)
txtAutorisation.Text = ds.Tables("aliasBaseCarte2003").Rows(inc).Item(4)
txtMontant.Text = ds.Tables("aliasBaseCarte2003").Rows(inc).Item(5)
DTPicker1.Value = ds.Tables("aliasBaseCarte2003").Rows(inc).Item(6)
End Sub
Private Sub btnFirst_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnFirst.Click
inc = 0
'met à jour datagrid1 pour suivre inc
Me.DataGrid1.CurrentRowIndex = inc
NavigateRecords()
End Sub
Private Sub btnNext_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnNext.Click
If inc < maxRows - 1 Then
inc = inc + 1
'met à jour datagrid1 pour suivre inc
Me.DataGrid1.CurrentRowIndex = inc
NavigateRecords()
End If
End Sub
Private Sub BtnArriere_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnArriere.Click
If inc > 0 Then
inc = inc - 1
NavigateRecords()
'met à jour datagrid1 pour suivre inc
Me.DataGrid1.CurrentRowIndex = inc
ElseIf inc = -1 Then
MsgBox("No Records Yet")
End If
End Sub
Private Sub btnLast_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLast.Click
inc = maxRows - 1
'met à jour datagrid1 pour suivre inc
Me.DataGrid1.CurrentRowIndex = inc
NavigateRecords()
End Sub
Private Sub btnUpdate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnUpdate.Click
Dim cb As OleDb.OleDbCommandBuilder = New OleDb.OleDbCommandBuilder(da)
If txtNumVente.Text "" Or txtMontant.Text "" Then
MsgBox("remplir les cases vides")
Else
ds.Tables("aliasBaseCarte2003").Rows(inc).Item(0) = lblRef.Text
ds.Tables("aliasBaseCarte2003").Rows(inc).Item(1) = DTPicker2.Text
ds.Tables("aliasBaseCarte2003").Rows(inc).Item(2) = DTPicker2.Value
ds.Tables("aliasBaseCarte2003").Rows(inc).Item(3) = txtNumCarte.Text
ds.Tables("aliasBaseCarte2003").Rows(inc).Item(4) = txtAutorisation.Text
ds.Tables("aliasBaseCarte2003").Rows(inc).Item(5) = txtMontant.Text
ds.Tables("aliasBaseCarte2003").Rows(inc).Item(6) = DTPicker1.Value
da.Update(ds, "aliasBaseCarte2003")
MsgBox("Data updated")
End If
End Sub
Private Sub btnAddNew_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAddNew.Click
btnAddNew.Enabled = False
btnUpdate.Enabled = False
btnDelete.Enabled = False
DTPicker2.ResetText()
txtMontant.Clear()
End Sub
Private Sub btnClear_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnClear.Click
' btnCommit.Enabled = False
btnAddNew.Enabled = True
btnUpdate.Enabled = True
btnDelete.Enabled = True
inc = 0
'met à jour datagrid1 pour suivre inc
Me.DataGrid1.CurrentRowIndex = inc
NavigateRecords()
End Sub
Private Sub btnDelete_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDelete.Click
If MessageBox.Show("Do you really want to Delete this Record?", _
"Delete", MessageBoxButtons.YesNo, _
MessageBoxIcon.Warning) = DialogResult.No Then
MsgBox("Operation Cancelled")
Exit Sub
End If
Dim cb As OleDb.OleDbCommandBuilder = New OleDb.OleDbCommandBuilder(da)
'verifie si tu n'est en EOF
If inc <> -1 Then
ds.Tables("aliasBaseCarte2003").Rows(inc).Delete()
da.Update(ds, "aliasBaseCarte2003")
'met à jour maxRows apres update
maxRows = ds.Tables("aliasBaseCarte2003").Rows.Count
inc = 0
'met à jour datagrid1 pour suivre linc
Me.DataGrid1.CurrentRowIndex = inc
NavigateRecords()
End If
End Sub
'on utilise l'evenement MouseDown & HitTestInfo pour recuperer la ligne en cours
'il faut importer en plus System.Windows.Forms.DataGrid
Private Sub DataGrid1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles DataGrid1.MouseDown
Dim xHitTestInfo As HitTestInfo
xHitTestInfo = Me.DataGrid1.HitTest(e.X, e.Y)
Dim lig As Integer = xHitTestInfo.Row
'corrige moi ca -> Me.DataGrid1.CurrentRow.Index
'enleve value
'attention ordre des indices ->rowindex,columindex
Me.lblRef.Text = Me.DataGrid1.Item(lig, 0).ToString
Me.txtNumVente.Text = Me.DataGrid1.Item(lig, 1).ToString
DTPicker2.Value = CType(Me.DataGrid1.Item(lig, 2), Date)
Me.txtNumCarte.Text = Me.DataGrid1.Item(lig, 3).ToString
Me.txtAutorisation.Text = Me.DataGrid1.Item(lig, 4).ToString
Me.txtMontant.Text = FormatNumber(Me.DataGrid1.Item(lig, 5), 3).ToString
DTPicker1.Value = CType(Me.DataGrid1.Item(lig, 6), Date)
curvi
Messages postés5Date d'inscriptiondimanche 20 mai 2007StatutMembreDernière intervention17 juin 2012 29 oct. 2010 à 10:56
Bonjour,
merci EL MABROUK pour cette aide précieuse , j'ai eu quelques erreurs secondaires dans ce code envoyé
1* Me.DataGrid1.CurrentRow.Index = inc
l'erreur est : property 'index' is 'readonly'
2* xHitTestInfo = Me.DataGrid1.HitTest(e.X, e.Y)
l'erreur est : Value of type 'System.Windows.Forms.DataGridView.HitTestInfo' cannot be converted to 'System.Windows.Forms.DataGrid.HitTestInfo'.
3* DTPicker1.Value = CType(Me.DataGrid1.Item(lig, 6), Date)
l'erreur est : Value of type 'System.Windows.Forms.DataGridViewCell' cannot be converted to 'Date'.
A part ces trois erreurs tout est bon. J'apprecie beaucoup ton aide.