Salut à tous,

J'ai une procédure qui me fait un update dans une table. Je précise d'avance que tous les champs date sont en date dans ma table donc je dois les avoir en date avec VB6. Voici la procédure :

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
Public Sub historique(ByVal code As String, ByVal centre As String)
Dim centreactuel, obsactuel, histocentreaff, histoobs, req, req2 As String
Dim dateaffactuelle, histodateaff As Date
    If dsTmp.State <> adStateClosed Then
        dsTmp.Close
    End If
    req = "select historique_date_affectation, historique_centre, historique_observations, date_affectation, centre_de_secours, observations from " & lireIni(SectFile, "fichier") & " where n_ddsis='" & code & "'"
    dsTmp.Open req, cnx
    'si centre de secours à ce jour
    'ne peut pas être vierge en réalité. le si n'est pas indispensable
    If IsNull(dsTmp.Fields(4).Value) Then
        centreactuel = ""
    Else
        centreactuel = dsTmp.Fields(4).Value
    End If
    'si date affectation à ce jour
    If IsNull(dsTmp.Fields(3).Value) Then
        dateaffactuelle = Format(Date, "dd/mm/yyyy")
    Else
        dateaffactuelle = dsTmp.Fields(3).Value
    End If
    'si observations à ce jour
    If IsNull(dsTmp.Fields(5).Value) Then
        obsactuel = ""
    Else
        obsactuel = dsTmp.Fields(5).Value
    End If
    'si ancienne date affectation
    If IsNull(dsTmp.Fields(0).Value) Then
        histodateaff = Format(Date, "dd/mm/yyyy")
    Else
        histodateaff = dsTmp.Fields(0).Value
    End If
    'si ancien centre de secours
    If IsNull(dsTmp.Fields(1).Value) Then
        histocentreaff = ""
    Else
        histocentreaff = dsTmp.Fields(1).Value
    End If
    'si ancienne observation
    If IsNull(dsTmp.Fields(2).Value) Then
        histoobs = ""
    Else
        histoobs = dsTmp.Fields(2).Value
    End If
 
    'met à jour les historiques en concaténant l'ancienne chaine avec la nouvelle
    'centreaff = centreaff & oldcentre
    'obs = obs & oldobs
    On Error GoTo err
    req2 = "update " & lireIni(SectFile, "fichier") & " set centre_de_secours=" & Chr(34) & centre & Chr(34) & ", date_affectation=" & Chr(34) & CDate(Date) & Chr(34) & ", historique_date_affectation=" & Chr(34) & CDate(dateaffactuelle) & Chr(34) & ", historique_centre=" & Chr(34) & centreactuel & Chr(34) & ", historique_observations=" & Chr(34) & obsactuel & Chr(34) & ", observations=" & Chr(34) & Chr(34) & " where n_ddsis='" & code & "'"
    cmdTmp.ActiveConnection = cnx
    cmdTmp.CommandText = req2
    cnx.BeginTrans
    cmdTmp.Execute
    cnx.CommitTrans
    Exit Sub
err:
    cnx.RollbackTrans
    MsgBox err.Description
End Sub
J'ai également fais un msgbox pour voir si ma requête update était conforme et elle l'est parfaitement

Le message d'erreur que j'ai est : "[FileMaker ODBC]une expression UPDATE ne correspond pas au type de données de la colonne correspondante."

J'ai pourtant vérifié maintes fois que les champs dans ma base sont du bon type...

Merci d'avance et désolé pour la longueur de la procédure.