|
Trouver une ressource
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
Sources du même auteur
Sources de la même categorie
Sources en rapport avec celle ci
Commentaires et avis
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
|
Téléchargements
Logiciels à télécharger sur le même thème :
Comparez les prix Nouvelle version
|