Conception base de contacts

frantz2501 Messages postés 1 Date d'inscription jeudi 3 mars 2011 Statut Membre Dernière intervention 20 février 2012 - 20 févr. 2012 à 10:41
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 - 20 févr. 2012 à 11:58
Bonjour

J'ai un peu de vécu en VBA et je suis passé à VB 2010 pour passer la seconde.

Je cherche à transposer une base de contact avec représentation "graphique" (sous XL, hein) en VB2010. J'ai éclusé pas de mal de tuto notamment celui-ci http://www.vbfrance.com/tutoriaux/GESTION-DONNEES-VISUAL-BASIC-2008-SQL-SERVER_1133.aspx mais je bloque sur la requête update.

Ca sent la bêtise à deux ronds, mais bref.

Il me renvoie :

'Public Overridable Overloads Function Update1() As Integer' n'a aucun paramètre et son type de retour ne peut pas être indexé.

A partir de :

 Dim NbLine As Integer = Description_contactsTableAdapter.Update1(NomTextBox.Text, _
                                                                            PaysTextBox.Text, _
                                                                            VilleTextBox.Text, _
                                                                            QualitéTextBox.Text, _
                                                                            LiaisonTextBox.Text, _
                                                                            ToString(ConnectTextBox.Text), _
                                                                            RemarquesTextBox.Text, _
                                                                            FixerTextBox.Text, _
                                                                            PersonnalitéTextBox.Text, _
                                                                            Attitude_v_PJsTextBox.Text, _
                                                                            Signe_particulierTextBox.Text, _
                                                                            MétatypeTextBox.Text, _
                                                                            ID)


Ce que je comprends, c'est qu'il n'attend pas d'arguments pour Update qui est pourtant dérivée d'une requête SQL du même nom.

Je vous joins le code entier, j'imagine que mon dataset est foireux, mais comment?

Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        'TODO: cette ligne de code charge les données dans la table 'DataDataSet.Description_contacts'. Vous pouvez la déplacer ou la supprimer selon vos besoins.

        Dim MonTableAdapter As New dataDataSetTableAdapters.Description_contactsTableAdapter
        Dim MaDataTable As New dataDataSet.Description_contactsDataTable
        MaDataTable = MonTableAdapter.GetDataBy1
        Me.Description_contactsTableAdapter.Fill(Me.DataDataSet.Description_contacts)

        cbo_Filter.SelectedIndex = 0
        Call refreshdatasource()
    End Sub
    Private Sub RefreshDataSource()

        Me.Description_contactsTableAdapter.Fill(Me.DataDataSet.Description_contacts)

    End Sub


    Private Sub NomComboBox_Click(ByVal sender As Object, ByVal e As System.EventArgs)




    End Sub


    Private Sub ListBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)

    End Sub

    Private Sub DataGridView1_CellContentClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs)

    End Sub

    Private Sub Description_contactsBindingNavigatorSaveItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
        Me.Validate()
        Me.Description_contactsBindingSource.EndEdit()
        Me.TableAdapterManager.UpdateAll(Me.DataDataSet)

    End Sub

    Private Sub Description_contactsBindingNavigatorSaveItem_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs)
        Me.Validate()
        Me.Description_contactsBindingSource.EndEdit()
        Me.TableAdapterManager.UpdateAll(Me.DataDataSet)

    End Sub

    Private Sub LiaisonLabel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)

    End Sub

    Private Sub btn_Save_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_Save.Click
        Dim MonTableAdapter As New dataDataSetTableAdapters.Description_contactsTableAdapter
        Dim MaDataTable As New dataDataSet.Description_contactsDataTable
        MonTableAdapter.Update(MaDataTable)

        Dim haserror As Boolean = False

        EP.Clear()

        If NomTextBox.Text.Length = 0 Then

            EP.SetError(NomTextBox, "Le champ NOM ne peut être vide")
            haserror = True
        End If

        If haserror Then
            Exit Sub
        End If

        Dim ID As String = CType(NomTextBox.Text, String)

        Try

            Dim NbLine As Integer = Description_contactsTableAdapter.Update1(NomTextBox.Text, _
                                                                            PaysTextBox.Text, _
                                                                            VilleTextBox.Text, _
                                                                            QualitéTextBox.Text, _
                                                                            LiaisonTextBox.Text, _
                                                                            ToString(ConnectTextBox.Text), _
                                                                            RemarquesTextBox.Text, _
                                                                            FixerTextBox.Text, _
                                                                            PersonnalitéTextBox.Text, _
                                                                            Attitude_v_PJsTextBox.Text, _
                                                                            Signe_particulierTextBox.Text, _
                                                                            MétatypeTextBox.Text, _
                                                                            ID)




            If NbLine > 0 Then

                MessageBox.Show("Le contact a bien été mis à jour" & _
                                "dans la base de données", _
                                "Mise à jour du contact", _
                                MessageBoxButtons.OK, _
                                MessageBoxIcon.Information)
                Call RefreshDataSource()

            End If

        Catch ex As Exception

            MessageBox.Show("Une erreur est survenue durant l'accès" & _
                            " à la base de données." & Environment.NewLine & _
                            "Détails de l'erreur: " & ex.Message, _
                            "Echec de l'accès aux données.", _
                            MessageBoxButtons.OK, _
                            MessageBoxIcon.Exclamation)

            '



        End Try
    End Sub

    Private Sub btn_Del_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_Del.Click
        Dim result As DialogResult = MessageBox.Show("Voulez-vous vraiment supprimer ce" & _
                                                     " contact ?", _
                                                     "Suppression définitive ?", _
                                                     MessageBoxButtons.YesNo, _
                                                     MessageBoxIcon.Question)

        '

        'Si la réponse est autre que Oui, alors on quitte la procédure

        If result <> Windows.Forms.DialogResult.Yes Then

            Exit Sub

        End If

        '

        'Récupération de la valeur de la colonne 0 de la première ligne

        'sélectionné dans notre DGV.

        Dim ID As String = CType(NomTextBox.Text, String)

        REM: Cette procédure retourne un entier indiquant le nombre de lignes modifiés.

        '

        Try

            '

            'Appel de la procédure DELETE, de notre TableAdapter qui transmettra la

            'requête SQL DELETE.

            Dim NbLine As Integer = Description_contactsTableAdapter.Delete()

            REM: Cette procédure retourne un entier indiquant le nombre de lignes modifiés.

            '

            If NbLine > 0 Then

                '

                MessageBox.Show("Le contact a bien été supprimé de la base de données.", _
                                "Suppression du contact", _
                                MessageBoxButtons.OK, _
                                MessageBoxIcon.Information)

                'La suppression effectuée nous actualisons les données de notre source

                'de données en effectuant une requête SELECT de nouveau.

                Call RefreshDataSource()

            End If

            '

        Catch ex As Exception

            '

            MessageBox.Show("Une erreur est survenue durant l'accès à la base de données." & _
                            Environment.NewLine & _
                            "Détails de l'erreur: " & ex.Message, _
                            "Echec de l'accès aux données.", _
                            MessageBoxButtons.OK, _
                            MessageBoxIcon.Exclamation)

            '

        End Try
    End Sub

    Private Sub btn_New_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_New.Click
        Dim HasError As Boolean = False

        EP.Clear()

        '

        If NomTextBox.Text.Length = 0 Then

            EP.SetError(NomTextBox, "Le champ ""Nom"" ne peut être vide !")

            HasError = True

        End If


        '

        If HasError Then

            Exit Sub

        End If

        '

        REM: nous pourrions aller plus loin dans cette gestion des erreur avec

        REM: l'ajout d'expressions régilères (RegEx)

        REM: pour contrôler les champs tel que l'email ou le code postal,

        REM: mais ce n'est pas le but de ce tutoriel.

        '

        Try

            '

            'Appel de la procédure Insert de notre TableAdapter,

            'qui transmettra la requête SQL INSERT.

            Dim NbLine As Integer = Description_contactsTableAdapter.Insert(NomTextBox.Text, _
                                                                            PaysTextBox.Text, _
                                                                            VilleTextBox.Text, _
                                                                            QualitéTextBox.Text, _
                                                                            LiaisonTextBox.Text, _
                                                                            ConnectTextBox.Text, _
                                                                            RemarquesTextBox.Text, _
                                                                            FixerTextBox.Text, _
                                                                            PersonnalitéTextBox.Text, _
                                                                            Attitude_v_PJsTextBox.Text, _
                                                                            Signe_particulierTextBox.Text, _
                                                                            MétatypeTextBox.Text)

            REM: Cette procédure retourne un entier indiquant le nombre de lignes modifiés.

            '

            If NbLine > 0 Then

                '

                MessageBox.Show("Le contact a bien été ajouté à la base de données.", _
                                "Ajout du contact", _
                                MessageBoxButtons.OK, _
                                MessageBoxIcon.Information)

                '

                'L'ajout effectué nous actualisons les données de notre source

                'de données en effectuant une requête SELECT de nouveau.

                Call RefreshDataSource()

                '

            End If

            '

        Catch ex As Exception

            '

            MessageBox.Show("Une erreur est survenue durant l'accès à la base de données." & _
                            Environment.NewLine & _
                            "Détails de l'erreur: " & ex.Message, _
                            "Echec de l'accès aux données.", _
                            MessageBoxButtons.OK, _
                            MessageBoxIcon.Exclamation)

            '

        End Try
    End Sub

    Private Sub txt_SearchArgs_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles txt_SearchArgs.TextChanged

        Dim filterArgs As String = cbo_Filter.Text & "LIKE" & txt_SearchArgs.Text & "%"
        Description_contactsBindingSource.Filter = filterArgs

    End Sub
End Class




Si une âme charitable a du temps à perdre sur mes aneries...

1 réponse

cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
20 févr. 2012 à 11:58
Bonjour,
Je pense que tu trouveras des réponses en regardant ce programme.

http://www.vbfrance.com/codes/MISE-JOUR-BASES-DONEES_51535.aspx

@+Le Pivert
0
Rejoignez-nous