none
Suppression d'un enregistrement base access en vb. je suis obligé de relancer l'application. RRS feed

  • Question

  • <big><big>Private Sub BindingNavigatorDeleteItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BindingNavigatorDeleteItem.Click
      
    Dim source As String
            Dim destination As String
            Dim fnam1 = "sit2.mdb"
            If MessageBox.Show("Etes-vous sûr de vouloir supprimer cet enregistrement? ", "Confirmation de la
                suppression",
                MessageBoxButtons.YesNo, MessageBoxIcon.Question) = Windows.Forms.DialogResult.Yes Then
                Me.BindingSource1.RemoveCurrent() ' Je détruit la 2ème fiche
            End If
            Me.TableAdapterManager.UpdateAll(Me.Sit2DataSet1)
            Me.SitesTableAdapter.Update(Me.Sit2DataSet1)

            Kill("C:\Users\Balme\Documents\Visual Studio 2010\Projects\sit-a\sit-a\sit2.mdb") 'je détruit ce fichier pour le  
                       remplacer par celui qui est dans debug

            source = ("C:\Users\Balme\Documents\Visual Studio 2010\Projects\sit-a\sit-a\bin\Debug\sit2.mdb")
            destination = ("C:\Users\Balme\Documents\Visual Studio 2010\Projects\sit-a\sit-a\sit2.mdb")
            FileCopy(source, destination)
            Refresh()
            Me.SitesTableAdapter.Fill(Me.Sit2DataSet1.sites)

    Mon Problème :

    Je supprime bien l'enregistrement mais j'ai une fiche vierge qui s'affiche et je suis obligé de quitter le débug pour relancer l'application qui me donne une seule fiche la 2ème ayant été détruite
    Comment faire ?
    </big></big>
    balme
    mardi 19 juillet 2011 08:56

Réponses

  • <big>Bonjour.</big>

    Je viens de trouver la solution en fait je fait un formulaire avec 2 GroupBox dont l'un est avec des champs de ma base de données mais le BindingNavigator est invisible et l'autre sur le même formulaire avec DataGridVieuw et dont le BindingNavigator est visible.

    Private Sub gridsit0_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            Me.CenterToScreen() ' Je centre mon formulaire sur mon écran d'ordinateur
            'TODO: cette ligne de code charge les données dans la table 'SiteDataSet.sites'. Vous pouvez la déplacer ou la supprimer selon vos
             besoins.
            Me.SitesTableAdapter.Fill(Me.SiteDataSet.sites)  'J'ouvre ma table
            BindingSource1.Sort = "num asc"  ' Je met en ordre les données en ordre par numéro ascendant
            Dim message, title, defaultValue As String
            Dim myValue As Object
            message = "1 = En Grille       2 = Normal"   ' Je demande le choix d'ouverture pour les 2 modes
            title = "Choix du mode"
            defaultValue = "1"

            ' Display dialog box at position 100, 100.
            myValue = InputBox(message, title, defaultValue, 500, 450)  'Je lance le formulaire de question
            If myValue = 1 Then
                BindingNavigator1.Visible = True    ' En grille le BindingNavigator est visible
                GroupBox2.Visible = False
                GroupBox1.Visible = True  ' Je laisse la partie grille visible avec mon choix 1
            Else
                BindingNavigator1.Visible = False
                GroupBox1.Visible = False
                GroupBox2.Visible = True
            End If
            If myValue = "" Then
                MsgBox("Vous avez choisi (Cancel = Abandonne), je quitte tout aux regrets.")
                End
            End If
          
    Private Sub DataGridView1_CellContentDoubleClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellContentDoubleClick
           
            If DataGridView1.Columns(e.ColumnIndex).DataPropertyName = "http0" Then
                System.Diagnostics.Process.Start(DataGridView1.SelectedCells(0).Value)  ' Je lance le navigateur principale sur mon champ http0
            End If
          
    idem pour les autres
           
            If DataGridView1.Columns(e.ColumnIndex).DataPropertyName = "login0" Then
                Clipboard.Clear()
                Clipboard.SetText(DataGridView1.SelectedCells(0).Value)
                Dim siteForm As New Form()
                ' Display the lower form Minimized to demonstrate effect of TopMost property.
                siteForm.WindowState = FormWindowState.Minimized
                MsgBox("Le login 0 est dans le presse-papiers", 1) 'Le login reste à coller avec le clic droit de la souris
                Exit Sub
            End If
               idem pour les autres
             If DataGridView1.Columns(e.ColumnIndex).DataPropertyName = "pass0" Then
                Clipboard.Clear()
                Clipboard.SetText(DataGridView1.SelectedCells(0).Value)
                Dim siteForm As New Form()
                ' Display the lower form Minimized to demonstrate effect of TopMost property.
                siteForm.WindowState = FormWindowState.Minimized
                MsgBox("Le passe 0 est dans le presse-papiers", 1) 'Le Passe reste à coller avec le clic droit de la souris
                Exit Sub
            End If
             Private Sub GrilleToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
           GrilleToolStripMenuItem.Click

            GroupBox2.Visible = False   ' Dans le choix des menus (grille)
            GroupBox1.Visible = True
            BindingNavigator1.Visible = True
        End Sub
        Private Sub NormalToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
        NormalToolStripMenuItem.Click
            GroupBox1.Visible = False  'Dans le choix du menu normal avec champs des données.
            GroupBox2.Visible = True
            BindingNavigator1.Visible = False
        End Sub
    end sub

    balme
    lundi 25 juillet 2011 14:41

Toutes les réponses

  • <big>Bonjour.</big>

    Je viens de trouver la solution en fait je fait un formulaire avec 2 GroupBox dont l'un est avec des champs de ma base de données mais le BindingNavigator est invisible et l'autre sur le même formulaire avec DataGridVieuw et dont le BindingNavigator est visible.

    Private Sub gridsit0_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            Me.CenterToScreen() ' Je centre mon formulaire sur mon écran d'ordinateur
            'TODO: cette ligne de code charge les données dans la table 'SiteDataSet.sites'. Vous pouvez la déplacer ou la supprimer selon vos
             besoins.
            Me.SitesTableAdapter.Fill(Me.SiteDataSet.sites)  'J'ouvre ma table
            BindingSource1.Sort = "num asc"  ' Je met en ordre les données en ordre par numéro ascendant
            Dim message, title, defaultValue As String
            Dim myValue As Object
            message = "1 = En Grille       2 = Normal"   ' Je demande le choix d'ouverture pour les 2 modes
            title = "Choix du mode"
            defaultValue = "1"

            ' Display dialog box at position 100, 100.
            myValue = InputBox(message, title, defaultValue, 500, 450)  'Je lance le formulaire de question
            If myValue = 1 Then
                BindingNavigator1.Visible = True    ' En grille le BindingNavigator est visible
                GroupBox2.Visible = False
                GroupBox1.Visible = True  ' Je laisse la partie grille visible avec mon choix 1
            Else
                BindingNavigator1.Visible = False
                GroupBox1.Visible = False
                GroupBox2.Visible = True
            End If
            If myValue = "" Then
                MsgBox("Vous avez choisi (Cancel = Abandonne), je quitte tout aux regrets.")
                End
            End If
          
    Private Sub DataGridView1_CellContentDoubleClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellContentDoubleClick
           
            If DataGridView1.Columns(e.ColumnIndex).DataPropertyName = "http0" Then
                System.Diagnostics.Process.Start(DataGridView1.SelectedCells(0).Value)  ' Je lance le navigateur principale sur mon champ http0
            End If
          
    idem pour les autres
           
            If DataGridView1.Columns(e.ColumnIndex).DataPropertyName = "login0" Then
                Clipboard.Clear()
                Clipboard.SetText(DataGridView1.SelectedCells(0).Value)
                Dim siteForm As New Form()
                ' Display the lower form Minimized to demonstrate effect of TopMost property.
                siteForm.WindowState = FormWindowState.Minimized
                MsgBox("Le login 0 est dans le presse-papiers", 1) 'Le login reste à coller avec le clic droit de la souris
                Exit Sub
            End If
               idem pour les autres
             If DataGridView1.Columns(e.ColumnIndex).DataPropertyName = "pass0" Then
                Clipboard.Clear()
                Clipboard.SetText(DataGridView1.SelectedCells(0).Value)
                Dim siteForm As New Form()
                ' Display the lower form Minimized to demonstrate effect of TopMost property.
                siteForm.WindowState = FormWindowState.Minimized
                MsgBox("Le passe 0 est dans le presse-papiers", 1) 'Le Passe reste à coller avec le clic droit de la souris
                Exit Sub
            End If
             Private Sub GrilleToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
           GrilleToolStripMenuItem.Click

            GroupBox2.Visible = False   ' Dans le choix des menus (grille)
            GroupBox1.Visible = True
            BindingNavigator1.Visible = True
        End Sub
        Private Sub NormalToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
        NormalToolStripMenuItem.Click
            GroupBox1.Visible = False  'Dans le choix du menu normal avec champs des données.
            GroupBox2.Visible = True
            BindingNavigator1.Visible = False
        End Sub
    end sub

    balme
    lundi 25 juillet 2011 14:41
  • Bonjour,

     

    Merci pour tenir la communauté informée sur la suite de vos démarches.

     

    Bonne journée,

     

    Cipri


    Suivez MSDN sur Twitter   Suivez MSDN sur Facebook


    Ciprian DUDUIALA, MSFT  
    •Nous vous prions de considérer que dans le cadre de ce forum on n’offre pas de support technique et aucune garantie de la part de Microsoft ne peut être offerte.

    lundi 1 août 2011 08:48