Bonjour,

Je poste ici car je sèche !

En effet, je dois effectuer une requête SQL (d'abord, un SELECT puis par la suite un Update).
J'utilise ADODB, qui visiblement fonctionne par Recordset... le concept est encore un peu flou pour moi, mes recherches Google m'ont aidées à écrire un nouvel enregistrement dans la base mais pas à utiliser des requêtes textuelles.

Voici mon code :

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
 
Sub enregistrer_bdd()
 
    Dim Tableau_date() As String
    Dim Tableau_heure() As String
    Dim Tableau_date_heure(5) As String
    Dim i As Integer
    Dim cn As ADODB.Connection, rs As ADODB.Recordset
    Dim sql As String
 
    'Connexion à la BDD Access
    Set cn = New ADODB.Connection
    cn.Open "Provider=Microsoft.Jet.OLEDB.4.0; " & "Data Source=Mes projets\Feuille de quart\quart.mdb;"
    'Open a recordset
    Set rs = New ADODB.Recordset
    'On ouvre la table Quart
    rs.Open "quart", cn, adOpenkeyset, adLockOptimistic, adCmdTable
 
    'extraire la date de la feuille de quart
    Tableau_date() = Split(Range("B8").Value, "/")
    'extraire l'heure de la feuille de quart
    Tableau_heure() = Split(Range("C8").Value, "_")
    'on crée un tableau intermédiaire avec le bon ordre
    Tableau_date_heure(0) = Tableau_date(2)
    Tableau_date_heure(1) = Tableau_date(1)
    Tableau_date_heure(2) = Tableau_date(0)
    Tableau_date_heure(3) = Tableau_heure(0)
    Tableau_date_heure(4) = Tableau_heure(1)
 
    Set rsselect = New ADODB.Recordset
    sql = "Select * From quart Where date_du_jour = '" & Join(Tableau_date_heure, "") & "'"
 
'Ensuite je fais quoi ? un rsselect.open ? quels arguments ?? Je sèche ici...
 
    'On ferme le RecordSet
    rs.Close
    Set rs = Nothing
    'On ferme la connexion à la base
    cn.Close
    Set cn = Nothing
End Sub
Je ne vous ai pas copié tout le code où j'ajoute un enregistrement, inutile pour ma question.
Bref, une fois que j'ai défini ma requête, je fais quoi ?
Ce sera ensuite la même combat pour ma requête UPDATE.

En fait, je veux vérifié si dans ma base l'enregistrement dont la date_du_jour est égale à ce que j'ai calculé dans la première partie de mon code, est présent.
Si présent, j'e mets à jour cet enregistrement avec des valeurs provenant de la feuille Excel.
Si pas présent, j'ajoute une enregistrement avec toujours ces mêmes valeurs.

Je ne recherche pas forcément un code tout fait, mais au moins de quoi savoir comment fonctionne ADO avec les Recordset. Je mélange aussi avec DAO (l'ancêtre de ADO ??) en recherchant sur Google...

Merci d'avance pour votre aide !

Edit: bon après tentative de rss.open, j'obtiens une erreur.

Après ma requête, j'ajoute cette ligne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
rsselect.Open sql, cn, adOpenkeyset, adLockOptimistic, adCmdTable
Erreur d'exécution : Erreur syntaxe dans la clause FROM.
Donc en gros, le nom de la table ne convient pas... pourtant c'est bien ce nom !