Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

FONCTIONS INSERT UPDATE POUR ACCESS PROJET ADP


Information sur la source



Description

C'est sans doute bête mais j'ai eu des problèmes avec les accents sur mes requêtes INSERT et UPDATE avec la commande CurrentProject.Connection.Execute SQL ... bizarrement les accents disparaissaient.
J'ai donc construit ces 2 fonctions génériques avec l'objet ADO recordset, qui en principe est tout aussi souple que le langage SQL. leur syntaxes:
FN_INSERT( "table", "champ1", "valeur1, [...]) as boolean
FN_UPDATE( "table", "condition where", "champ1", "valeur1", [...]) as boolean

 

Source

  • ' insertion via objet ADO: Tablename = table de destination
  • ' InsertValues = (champ1, valeur1, champ2, valeur2, etc)
  • Public Function FN_INSERT(Tablename As String, ParamArray InsertValues() As _
  • Variant) As Boolean
  • Dim oRS As ADODB.Recordset, i As Long
  • 10 On Error GoTo FN_INSERT_Error
  • 20 Set oRS = New ADODB.Recordset
  • 30 oRS.Open Tablename, CurrentProject.Connection, adOpenStatic, _
  • adLockOptimistic
  • 40 With oRS
  • 50 .AddNew
  • 60 For i = LBound(InsertValues) To UBound(InsertValues) Step 2
  • 70 If Not IsEmpty(InsertValues(i + 1)) Then
  • 80 Select Case .Fields(InsertValues(i)).Type
  • Case adDate, adDBDate, adDBTime, adDBTimeStamp
  • 90 .Fields(InsertValues(i)).Value = _
  • CDate(Replace(InsertValues(i + 1), "'", ""))
  • 100 Case Else
  • 110 .Fields(InsertValues(i)).Value = InsertValues(i + 1)
  • 120 End Select
  • 130 End If
  • 140 Next i
  • 150 .Update
  • 160 .Close
  • 170 End With
  • 180 FN_INSERT = True
  • 190 Exit Function
  • FN_INSERT_Error:
  • 200 MsgBox "Error " & Err.Number & " (" & Err.Description & _
  • ") in Function FN_INSERT of Module mdSql", vbCritical
  • End Function
  • ' mise à jour via objet ADO: Tablename = table de destination
  • ' critère = clause where des enregistrements à modifier
  • ' InsertValues = (champ1, valeur1, champ2, valeur2, etc)
  • Public Function FN_UPDATE(Tablename As String, Critere As String, ParamArray _
  • InsertValues() As Variant) As Boolean
  • 10 On Error GoTo FN_UPDATE_Error
  • Dim oRS As ADODB.Recordset
  • Dim SQL As String, i As Long
  • ' si on a un nombre impair d'arguments InsertValues() :
  • ' le dernier (booléen) indique si on log ou pas les modifs
  • 30 SQL = "SELECT * FROM " & Tablename & " WHERE " & Critere
  • 40 Set oRS = New ADODB.Recordset
  • 50 oRS.Open SQL, CurrentProject.Connection, adOpenStatic, adLockOptimistic
  • 60 With oRS
  • 70 Do Until .EOF
  • 80 For i = LBound(InsertValues) To UBound(InsertValues) - 1 Step 2
  • 100 If Not IsEmpty(InsertValues(i + 1)) Then
  • 110 .Fields(InsertValues(i)).Value = InsertValues(i + 1)
  • 120 End If
  • 130 Next i
  • 140 .Update
  • 150 .MoveNext
  • 160 Loop
  • 170 .Close
  • 180 End With
  • 190 FN_UPDATE = True
  • 200 Exit Function
  • FN_UPDATE_Error:
  • 210 MsgBox "Error " & Err.Number & " (" & Err.Description & _
  • ") in Function FN_UPDATE of Module mdSql", vbCritical
  • End Function
' insertion via objet ADO: Tablename = table de destination
' InsertValues = (champ1, valeur1, champ2, valeur2, etc)
Public Function FN_INSERT(Tablename As String, ParamArray InsertValues() As _
    Variant) As Boolean
      Dim oRS As ADODB.Recordset, i As Long

10       On Error GoTo FN_INSERT_Error

20        Set oRS = New ADODB.Recordset
30        oRS.Open Tablename, CurrentProject.Connection, adOpenStatic, _
              adLockOptimistic
40        With oRS
50            .AddNew
60            For i = LBound(InsertValues) To UBound(InsertValues) Step 2
70                If Not IsEmpty(InsertValues(i + 1)) Then
80                    Select Case .Fields(InsertValues(i)).Type
                      Case adDate, adDBDate, adDBTime, adDBTimeStamp
90                        .Fields(InsertValues(i)).Value = _
                              CDate(Replace(InsertValues(i + 1), "'", ""))
100                   Case Else
110                       .Fields(InsertValues(i)).Value = InsertValues(i + 1)
120                   End Select
130               End If
140           Next i
150           .Update
160           .Close
170       End With
180       FN_INSERT = True

190   Exit Function
FN_INSERT_Error:
200       MsgBox "Error " & Err.Number & " (" & Err.Description & _
          ") in Function FN_INSERT of Module mdSql", vbCritical

End Function


' mise à jour via objet ADO: Tablename = table de destination
' critère = clause where des enregistrements à modifier
' InsertValues = (champ1, valeur1, champ2, valeur2, etc)
Public Function FN_UPDATE(Tablename As String, Critere As String, ParamArray _
    InsertValues() As Variant) As Boolean
10       On Error GoTo FN_UPDATE_Error

      Dim oRS As ADODB.Recordset
      Dim SQL As String, i As Long
      ' si on a un nombre impair d'arguments InsertValues() :
      ' le dernier (booléen) indique si on log ou pas les modifs
          
30        SQL = "SELECT * FROM " & Tablename & " WHERE " & Critere
40        Set oRS = New ADODB.Recordset
50        oRS.Open SQL, CurrentProject.Connection, adOpenStatic, adLockOptimistic
60        With oRS
70            Do Until .EOF
80                For i = LBound(InsertValues) To UBound(InsertValues) - 1 Step 2
                      
100                   If Not IsEmpty(InsertValues(i + 1)) Then
110                       .Fields(InsertValues(i)).Value = InsertValues(i + 1)
120                   End If
130               Next i
140               .Update
150               .MoveNext
160           Loop
170           .Close
180       End With
190       FN_UPDATE = True
          
200       Exit Function

FN_UPDATE_Error:

210       MsgBox "Error " & Err.Number & " (" & Err.Description & _
              ") in Function FN_UPDATE of Module mdSql", vbCritical
          
End Function

Commentaires et avis

Aucun commentaire pour le moment.

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Insert et update dans une table access. [ par gibea00 ] J'aimerais pouvoir faire des update et des insert dans un table access.  Es-ce que quelqu'un est en mesure me m'aider ?  J'ai un peu de difficulté à u requet insert update VB 2005 + Access [ par ssimou_06 ] je suis entrain de créer une application avec Vb 2005 et access veillez me donner le code de l'insertion et update . merci Fonction replace en VBA access [ par WrestlingMan ] Voila : j'ai un petit souci ! En effet, j'ai réalisé une requête d'insertion pour un formulaire de saisie de résultats de tests sportifs ! Le problème DataTable et access [ par narvis25 ] Bonjour,je developpe une appliaction sous vb.net qui est connectée à une base access.Je veux vider une table de la base , je vide donc la datatable co Update une base de données access avec un datagridview [ par lolmain ] Bonjour;S.V.P est ce que quelqu'un peut m'aidai a faire une update d'une base de données access (TableAdapter.Update()...) fonction Combobox [ par shenkool ] Bonjour, Je souheterai créer un sub permettant d'effacer le contenu d'une combobox mis en parametre. En effet dans mon programme j'efface plusieurs Question difficile [ par tbbuim1 ] Bonjour à tous, J'ai tenté veinement de récupérer une valeur affichée dans une appli VB et de la mettre en critère dans une requête ACCESS. Je m'exp Windows Vista et Access [ par themagueri ] J'ai une base de données access 2000 qui marche bien sous windows XPmais sur windows vista, la même base fonctionne malproblèmes  :1) la fonction form [access] pb avec fonction date [ par leroi1024 ] Bonjour. J'ai un problème avec la fonction date sous access. Quand j'exécute cette ligne de code : "txtBox1.Value = "01" & Right(date,2)", j'ai le Update Access [ par ren7530 ] Besoin Urgent d'aideJe suis débutant et très nul !!Ajouter et Suprimer dans la base pas de problème mais pour la modif toujour la même chose "Aucune v


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,702 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.