IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB 6 et antérieur Discussion :

[VB6/mysql]:Problème d'insertion dans une bdd


Sujet :

VB 6 et antérieur

  1. #1
    gaetan.tranvouez
    Invité(e)
    Par défaut [VB6/mysql]:Problème d'insertion dans une bdd
    Bonjour à tous

    voila j'arrive à me connecter à ma bdd mais mes valeurs ne se rentrent pas, quelqu'un aurait t'il une explication. Il me sélectionne mydate et me dit type d'argument Byref incompatible.

    voila mon code du form

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
     
    Dim mydate
    Dim mytime
    Dim i As Integer, j As Integer
    Dim Mabase As Bdd
     
    Private Sub ConnectBdd_Click()
    Dim msg As String, msginf As String
    For i = 0 To 2
        If Text1(i).Text = "" Then
            j = j + 1
            msginf = "Il manque " & j & " paramètres de connexion!"
        End If
    Next
    If j > 0 Then
        GoTo lastline
    End If
    StatusBar1.SimpleText = ""
    With Mabase
        .NameUser = Text1(0).Text
        .Passwd = Text2.Text
        .Server = Text1(1).Text
        .NameDB = Text1(2).Text
        msg = .Connecter
    End With
    If msg = "OK" Then
        msginf = "Connexion à la Bdd réussie!"
        SaveInBdd.Enabled = True
      Else
        msginf = "Connexion à la Bdd échouée! Erreur:  " & msg
    End If
    lastline:
    StatusBar1.SimpleText = msginf
    End Sub
    Private Sub Exit_Click()
    'Si on clique sur le bouton"quitter" alors on reçoit le msg suivant
    Dim var As Integer 'Initialise "var" comme un entier
    var = MsgBox("Etes-vous sûr de vouloir quitter?", vbOKCancel, "Attention") 'Confirmation de sortie
    If (var = 2) Then
        Exit Sub
    End If
    Unload Form1
    End Sub
     
    Private Sub SaveInBdd_Click()
    Dim pds As Double
    Dim cpnt As Byte
    Dim Codep As String
    Dim Rapports(2) As String
    Dim var As String
    Dim Use As String
    Dim Pass As String
     
    mytime = VBA.Time
    mydate = VBA.Date
     
    On Error GoTo lastline
     
    'mydate = Date
    'mydate = Format(Year(mydate) & "-" & Month(mydate) & "/" & Day(mydate), "yyyy-mm-dd")
    'mytime = Time
     
     
    Codep = Code_Produit.Text
    Use = Text1(0).Text
    Pass = Text2.Text
     
    For i = 0 To 2
        Rapports(i) = Replace(Text3(i).Text, ",", ".")
    Next
    var = Mabase.Ecrire(mydate, mytime, Codep, Pass, Use, Rapports())
    If var = "OK" Then
        StatusBar1.SimpleText = "Ecriture dans la base de données réussie!"
     Else
        StatusBar1.SimpleText = var
    End If
    Exit Sub
    lastline:
    StatusBar1.SimpleText = "Erreur dans la mise en forme des données,vérifiez les informations rentrées!)"
    End Sub
    Private Sub Form_Load()
    Set Mabase = New Bdd
    Text1(0).Text = "root"
    Text1(1).Text = "127.0.0.1"
    Text1(2).Text = "Brownie"
    Text2.Text = "pauleta"
    End Sub
    voila mon module

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
     
    Option Explicit
    Dim cnx As ADODB.Connection
    Dim rst As ADODB.Recordset
    Dim cd As ADODB.Command
    'variables locales de stockage des valeurs de propriétés
    Private mvarNameUser As String 'copie locale
    Private mvarPasswd As String 'copie locale
    Private mvarNameDB As String 'copie locale
    Private mvarServer As String 'copie locale
    Public Property Let Server(ByVal vData As String)
        mvarServer = vData
    End Property
    Public Property Get Server() As String
        Server = mvarServer
    End Property
    Public Property Let NameDB(ByVal vData As String)
        mvarNameDB = vData
    End Property
    Public Property Get NameDB() As String
        NameDB = mvarNameDB
    End Property
    Public Property Let Passwd(ByVal vData As String)
        mvarPasswd = vData
    End Property
    Public Property Get Passwd() As String
        Passwd = mvarPasswd
    End Property
    Public Property Let NameUser(ByVal vData As String)
        mvarNameUser = vData
    End Property
    Public Property Get NameUser() As String
        NameUser = mvarNameUser
    End Property
    Public Function Ecrire(d As String, Heure As String, CdProd As String, Pass As String, Use As String, Rapps() As String) As String
    On Error GoTo line1
    Set cd.ActiveConnection = cnx
    Dim msg As String
    msg = "OK"
    d = Now
    cd.CommandText = "INSERT INTO ronaldinho (User, Password, CodeProduit, Date, Heure, Rapport1, Rapport2, Rapport3) VALUES ('" & Use & "', '" & Pass & "' ,'" & CdProd & "','" & d & "','" & Heure & "','" & Rapps(0) & "','" & Rapps(1) & "','" & Rapps(2) & "');"
    cd.execute
    GoTo lastline
    line1:
    msg = cnx.Errors.Item(0)
    lastline:
    cnx.Errors.Clear
    Ecrire = msg
    End Function
    Public Function Connecter() As String
    On Error GoTo line1
    Dim msg As String
    msg = "OK"
    cnx.ConnectionString = "Driver={MySQL ODBC 3.51 Driver};database=" & NameDB & ";server=" & Server & ";uid=" & NameUser & ";pwd=" & Passwd & ";"
    cnx.Open
    GoTo lastline
    line1:
    'msg = cnx.Errors.Item(0)
    lastline:
    Connecter = msg
    cnx.Errors.Clear
     
    'If cnx.State = adStateOpen Then
    '    cnx.Close
    'End If
    'Définition de la chaîne de connexion
    'Ouverture de la base de données
    End Function
    Private Sub Class_Initialize()
    'Initialisation de la connexion
    Set cnx = New ADODB.Connection
    Set cd = New ADODB.Command
    End Sub
    Private Sub Class_Terminate()
    'If cnx.State = adStateOpen Then
     '  cnx.Close
    'End If
    End Sub

  2. #2
    gaetan.tranvouez
    Invité(e)
    Par défaut
    Alors personne n'a une petite idée...

  3. #3
    Membre éclairé
    Avatar de Catbull
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    542
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 542
    Points : 854
    Points
    854
    Par défaut
    Déclaration de MyDate :

    Profil d'Ecrire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Public Function Ecrire(d As String, Heure As String, CdProd As String, Pass As String, Use As String, Rapps() As String) As String
    Appel à la fonction Ecrire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var = Mabase.Ecrire(mydate, mytime, Codep, Pass, Use, Rapports())
    Le premier paramètre de la fonction Ecrire est de type String, or tu lui passe un Variant. Voilà pourquoi tu obtiens une erreur d'exécution.

  4. #4
    gaetan.tranvouez
    Invité(e)
    Par défaut
    donc je peux remplacer d as string
    par d as variant

  5. #5
    Membre éclairé
    Avatar de Catbull
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    542
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 542
    Points : 854
    Points
    854
    Par défaut
    De toute évidende d représent une Date. Donc déclare des dates.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim MyDate As Date
     
    Public Function Ecrire(d As Date, ...
     
    var = Mabase.Ecrire(mydate, mytime, Codep, Pass, Use, Rapports())
    C'est à toi d'assurer la cohérence de ton code. Sinon tu peux sans changer le typage utiliser la fonction de conversion Cstr. Il y a plusieurs solutions.

  6. #6
    gaetan.tranvouez
    Invité(e)
    Par défaut
    Voila ca marche nikel

    voila ce que j'ai fait, comme tu m'as dit

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Public Function Ecrire(d As Date, Heure As Variant, CdProd As String, Pass As String, Use As String, Rapps() As String) As String
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Dim mydate As Date
    Merci à toi Catbull

Discussions similaires

  1. Problème d'insertion dans une BDD Access
    Par ikram0 dans le forum JDBC
    Réponses: 8
    Dernier message: 05/05/2015, 10h52
  2. Réponses: 1
    Dernier message: 20/12/2014, 10h14
  3. [JSF] Problème d'insertion dans une BDD
    Par alhakam dans le forum JDBC
    Réponses: 0
    Dernier message: 20/12/2012, 12h13
  4. problème d'insertion dans une base MySql
    Par cerco1 dans le forum JDBC
    Réponses: 13
    Dernier message: 01/10/2007, 20h40
  5. Problème d'insertion dans une table MYSQL
    Par greg69 dans le forum Requêtes
    Réponses: 4
    Dernier message: 24/10/2005, 11h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo