[Catégorie modifiée VB6 -> VBA] liaison conditionnelle adodb avec plusieurs cond

huascaran01 Messages postés 35 Date d'inscription mercredi 12 août 2009 Statut Membre Dernière intervention 25 août 2012 - 4 sept. 2011 à 23:04
huascaran01 Messages postés 35 Date d'inscription mercredi 12 août 2009 Statut Membre Dernière intervention 25 août 2012 - 5 sept. 2011 à 00:10
bonjour,
En vba word, j'ai créer une connexion adodb qui me permet automatiquement d'insérer ou de modifier des enregistrements dans une base access.
Quand il s'agit de modifier un enregistrement dans une table en fonction d'une seule condition, aucun problème.
Par contre, je voudrais pouvoir modifier les enregistrements dont deux champs correspondes à des critères.
En fait, je ne voudrais modifier que les enregistrements (par exemple le champs 3)dont le champs 1 est égal à un certain critère le le champs 2 correspond à un autre.
J'ai testé le code suivant, mais ce n'est pas satisfaisant:



numcollabo = "critère 2"
ComboBox2 = "critère 1"
dateaud = "8/9/2011"

Dim Conn As ADODB.Connection
Dim rsT As ADODB.Recordset
Dim fd As ADODB.Field
Dim maTable As String
Set Conn = New ADODB.Connection
Set rsT = New ADODB.Recordset
With Conn
.Provider = "Microsoft.JET.OLEDB.4.0"
.Open "C:\base\cabinet.mdb"
.Execute "Update T_Audiencier_liaison Set code_collabo_externe=numcollabo where (date_audience=" & dateaud " and code_juridiction=" & combobox2 & ")"
End With
Conn.Close

Je ne dois pas être loin de la solution. Si quelqu'un a une idée, je suis preneur.

Merci.

3 réponses

NHenry Messages postés 15032 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 26 janvier 2023 156
4 sept. 2011 à 23:52
Bonjour,

Les dates en Access sont au format #mm/dd/yyyy# et si un champ est de type texte, l'entourer de "

Sinon, précise l'erreur.

Teste aussi en faisant :
lSql="UPDATE ..."
.Execute lSql

Ensuite regardes la valeur de lSql et essayes d'exécuter la requête directement dans Access.

Sinon pour le code, voir le point 2 qui suit.

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS et aussi ce lien[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Mon site
0
cs_Jack Messages postés 14007 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 77
5 sept. 2011 à 00:07
Salut

Tu as déjà posté cette question le 23 août, mot pour mot.
Si les réponses n'ont pas été claires, c'est que ta question manquait d'élément.
Tu aurais pu, au minimum, ajouter les détails que tu avais fournis lors des précédentes questions.
NHenry a déjà eu l'occasion de te répondre, mais tu ne sembles pas avoir corrigé quoi que ce soit, apparemment pas de recherche non plus.
Crois-tu qu'on va les faire pour toi ?

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
huascaran01 Messages postés 35 Date d'inscription mercredi 12 août 2009 Statut Membre Dernière intervention 25 août 2012
5 sept. 2011 à 00:10
Merci à tous, mais en fait, la réponse du 23 août n'avait rien donné. Superplantage et je m'étais consacré à d'autres parties du code.
Je vais m'atteler à tester et j'indiquerai les suites.
0
Rejoignez-nous