Solution sur Excel recherche sur access

Bonjour,

J'ai fait une macro sur une plage de donnée Access CF ci-joint.

13forumm.xlsm (13.94 Ko)

Et Je voudrai faire exactement la même chose sur le même genre de plage de donnée, mais sur access. c'est à dire la même table nommée Grille polyvalence nom des colonnes = nom des colonnes sur le fichier excel joint.

Quelqu'un serai m'orienter ou m'aider?

Bien cordialement

Naubin

Bonjour

Le fonctionnement d'Excel et d'Access n'ont rien à voir et sans explication sur le contexte, la finalité opérationnelle et la structure de la base Access, je doute que tu aies des réponses

Bonjour,

tous ce que je cherche à faire c'est de balayer ma table, et de changer ma la valeur de ma commande P1 en lui rajoutant un zéro si jamais la valeur dans ma cellule Date_P1 est dépassé depuis un an.

donc il faudrait un moyen pour que l'ordinateur parcours une table Access et modifie des cellules d'une table en fonction de la valeur de la cellule adjacente.

Re

Comme déjà dit une table n'est pas un tableau Excel.

On agit sur une table par une requête.

Et, comme déjà dit aussi, impossible de te guider pour créer un requête sans connaître la structure de la base.

Tu as une vision Excellienne d'Access : impossible de travailler sur une base de données sans un minimum de connaissances de la logique des bases de données.

En base de données une requête hyper simple fait ce qui nécessite des dizaines de lignes VBA dans Excel...

Il est probable qu'avec une bonne structure de base, déjà tu aurais non pas une table mais 2 ou 3 par rapport à ton tableau Excel.

En plus tu as des valeur numériques : on n'ajoute pas des "0" mais on multiplie par 10...

Donc si tu eux de l'aide, ne campe pas sur ton bout de code et aide-nous à t'aider...

... En base de données une requête hyper simple fait ce qui nécessite des dizaines de lignes VBA dans Excel...

+1, tout à fait, il suffirait d'écrire un code de ce genre :

    Requete = "UPDATE [Table_Access]  set `P1` = `P1` & '0' WHERE DATE_P1>" & DateAdd("yyyy", -1, Now)
    Connect_Xls chemin & nom_base_access.accdb
    Cnx.Execute Requete
    Close_Cnx

et ça fait le job.

On peut te recommander la lecture du site : https://sql.sh/

Pierre

Re

Bonjour Pierre

Oui, mais on ne sait même pas si l'action est faite dans Access où VBA est inutile pour lancer la requête ou depuis Excel où ton code effectivement fera le job...

Bonjour à tous et merci pour vos éléments je vais m'y mettre et vous fait un retour rapidement !!

Bien cordialement,

Naubin

Re, passer par la forme update SQL à résolue mon problème, merci à vous

Bonjour, en passant par excel vba, je fais le code suivant:

Sub test()
Dim requete As String
  Set cnx = Nothing

 cnx.Provider = "Microsoft.ACE.OLEDB.12.0"
        'Définition de la chaîne de connexion
        cnx.ConnectionString = "C:\Users\naubin\Desktop\grilledepolyvalence1.accdb"
        'Ouverture de la base de données
        cnx.Open
        For x = 1 To 36
            requete = "UPDATE [Grille polyvalence] " & _
             "set `P" & x & "` = `P" & x & "` * 10 " & _
             "WHERE 'Date_P" & x & "' < '" & (Now - 365) & "' and P" & x & " < 10 and  P" & x & " is not null"
    cnx.Execute requete
        Next x

                Set cnx = Nothing
End Sub

sur ma table:

a

le code ne m'indique aucune erreur et pourtant ma date en P3=14/06/18 remplie bien les condittions pourtant mon 2 reste 2 et ne passe pas à 20. Quelqu'un à une idée?

Rechercher des sujets similaires à "solution recherche access"