OVH Cloud OVH Cloud

Appel à Anor EXECUTION PROCEDURE SQL

5 réponses
Avatar
ATZEL.CH
Bonjour,
J'ai parcouru avec intérêt le site à Anor. Trés fonctionnel mais les
couleurs rouge et noir !!!Je souhaiterai qq explications
supplémentaires pour voir la procédure de création de table se
réaliser concrètement. Faut-il cocher des librairies particulières ?
Où mettre le bout de programme et comment le lancer ?
Merci pour votre aide
Christian ATZEL

5 réponses

Avatar
Anor
Bonjour Christan

| Bonjour,
| J'ai parcouru avec intérêt le site à Anor. Trés fonctionnel mais les
| couleurs rouge et noir !!!

ce sont mes tablettes en ardoise :
Tableau Noir, Craies blanches/grises ou jaunes
Comme à l'école, christian ;-)))
Si ces couleurs étaient mauvaises pour la santé, ça se saurait ah ah !
Merci en tout cas pour le "très fonctionnel", je prends ça pour un compliment ;-)

| Je souhaiterai qq explications
| supplémentaires pour voir la procédure de création de table se
| réaliser concrètement. Faut-il cocher des librairies particulières ?

J'ai mis un exemple avec une syntaxe SQL.
Pas de librairies à cocher.

Celui là est plus pour dire : on peut le faire, mais ce n'est pas hyper puissant !!
Les méthodes VBA le sont bien plus :
http://groups.google.com/groups?hl=fr&lr=&ie=UTF-8&selmîtPeIyqBHA.1880%40tkmsftngp07

(Mon site est tout jeune, donc pas très fourni pour l'instant)

| Où mettre le bout de programme et comment le lancer ?

Si tu colles le bout de code dans un nouveau module,
ou sur événement "sur clic" d'un bouton d'un formulaire,
ça crée une table avec les champs listés dans le code SQL.

Tu peux même créer directement une requête et coller le code SQL directement dedans.

CREATE TABLE LaTable (LeTexte CHAR(50), LaDate DATE not null,
LaMonnaie Currency, LeNombreReel Double, LeNombreEntierLong Long,
LeChampMemo Memo, NoAuto counter, CONSTRAINT PrimaryKey PRIMARY KEY (NoAuto));

--
à+
Arnaud
----------------------------------------------
Conseils d'utilisation, sites recommandés :
http://users.skynet.be/mpfa/
Access Memorandum - Les tablettes d'Anor
www.anor.fr.st
----------------------------------------------
Avatar
Anor
Bonjour Christan,

Cette petite routine est destinée à un formulaire qui après une action quelconque,
nécessitera que tu rajoutes des données dans une table (indépendante par exemple).

Par exemple, sur clic d'un bouton, tu mettras :

Call AddRecord ()

et tu colles le sub AddRecord () à part, plus bas dans le code de ton formulaire.

Lorsque tu cliqueras, ça lancera la routine.

A noter qu'il faudra probablement remplacer

strVal = "LaValeur" par strVal = Me.LeContrôleduFormulairequicontientlavaleur

Donc à adapter en fonction des besoins.

Cet exemple est là pour rappeler qu'on peut rajouter une valeur dans une table sans
sortir toute l'artillerie des recordsets !!

--
à+
Arnaud
----------------------------------------------
Conseils d'utilisation, sites recommandés :
http://users.skynet.be/mpfa/
Access Memorandum - Les tablettes d'Anor
www.anor.fr.st
----------------------------------------------


| OK & Bonjour,
| J'ai tout compris pour créer la table ; elle se crée toute seule ; il
| suffit d'insérer le bout de code à Anor dans un module éopcépati. Par
| contre, je n'ai pas réussi à imiter Dieu avec l'autre bout de code :
| Sub AddRecord()
|
| Dim strTbl As String
| Dim strFld As String
| Dim strVal As String
| Dim strSQL As String
|
| strTbl = "LaTable" 'nom de la table
| strFld = "LeChamp" 'nom du champ
| strVal = "LaValeur" 'valeur du champ
|
| strSQL = "INSERT INTO " & strTbl & " ( " & strFld & " ) " & _
| "SELECT '" & strVal & "' ;"
|
| CurrentDb.Execute strSQL, dbFailOnError
|
| End Sub
|
| Où faut-il le mettre. Simple requête ajout ! Merci de m'aider à créer
| comme...
| Christian ATZEL
Avatar
Anor
Bonjour Christan

| Oui, ça marche et je suis heureux comme un prince.

Tant mieux car je viens de supprimer ces 2 routines de mon site
pour les y remettre en SQL tout nu qui devrait être plus compréhensible ;-)
http://perso.wanadoo.fr/anor.fr.st/queries.htm

Je t'ai rajouté 2 lignes pour modifier la valeur d'un champ.
Si tu veux conserver le principe de la chaine SQL exécutée depuis VBA
c'est un bon exercice ;-)

| Pourrais-tu me
| souffler le complément de code qui me permettrait d'ouvrir la Table
| après l'avoir renseignée et de comptempler l'oeuvre cré.

Par exemple
DoCmd.OpenTable "LaTable", acViewNormal, acReadOnly
(pour empêcher de modifier les données ...)

|
| Comment fais-tu pour retenir les ponctuations dans la ligne strSQL ?

En fait, c'est un peu pour ça que j'ai mis le code SQL nu plutôt que dans une chaine SQL
Il faut y aller à tâtons bien souvent :

1 - essayer de faire la requête avec le requêteur graphique
2 - passer en mode SQL
3 - épurer le code autogénéré des parenthèses et répétitions latable. en trop
4 - tester le code SQL épuré
5 - Coller ce code dans VBA entre 2 guillemets et après un strSQL 6 - jusqu'à ce qu'il n'y ait plus de syntaxe
7 - faire de temps en temps un debug.print strSQL pour voir ce que donne la chapine SQL

Si tu utilises des variables pour stocker le nom d'un champ par exemple,
le debug.print doit ramener la valeur de la variable si on la met en dehors des
guillemets et précédée d'un &.

Voilà, au début c'était un casse tête, et un beau jour, sans s'en rendre compte,
on sort la syntaxe (presque) du premier coup ;-)

--
à+
Arnaud
----------------------------------------------
Conseils d'utilisation, sites recommandés :
http://users.skynet.be/mpfa/
Access Memorandum - Les tablettes d'Anor
www.anor.fr.st
----------------------------------------------
Avatar
ATZEL.CH
"Anor" wrote in message news:<3f26e1bf$0$24563$...
Bonjour Christan

| Oui, ça marche et je suis heureux comme un prince.

Tant mieux car je viens de supprimer ces 2 routines de mon site
pour les y remettre en SQL tout nu qui devrait être plus compréhensible ;-)
http://perso.wanadoo.fr/anor.fr.st/queries.htm

Je t'ai rajouté 2 lignes pour modifier la valeur d'un champ.
Si tu veux conserver le principe de la chaine SQL exécutée depuis VBA
c'est un bon exercice ;-)

| Pourrais-tu me
| souffler le complément de code qui me permettrait d'ouvrir la Table
| après l'avoir renseignée et de comptempler l'oeuvre cré.

Par exemple
DoCmd.OpenTable "LaTable", acViewNormal, acReadOnly
(pour empêcher de modifier les données ...)

|
| Comment fais-tu pour retenir les ponctuations dans la ligne strSQL ?

En fait, c'est un peu pour ça que j'ai mis le code SQL nu plutôt que dans une chaine SQL
Il faut y aller à tâtons bien souvent :

1 - essayer de faire la requête avec le requêteur graphique
2 - passer en mode SQL
3 - épurer le code autogénéré des parenthèses et répétitions latable. en trop
4 - tester le code SQL épuré
5 - Coller ce code dans VBA entre 2 guillemets et après un strSQL > 6 - jusqu'à ce qu'il n'y ait plus de syntaxe
7 - faire de temps en temps un debug.print strSQL pour voir ce que donne la chapine SQL

Si tu utilises des variables pour stocker le nom d'un champ par exemple,
le debug.print doit ramener la valeur de la variable si on la met en dehors des
guillemets et précédée d'un &.

Voilà, au début c'était un casse tête, et un beau jour, sans s'en rendre compte,
on sort la syntaxe (presque) du premier coup ;-)

--
à+
Arnaud
Merci encore, en deux jours d'échanges, j'ai appris plein de choses et

pas uniquement des formules. Les 7 points pour progresser en SQL sont
à méditer. je suis en vacances et la pêche ne donne pas grand chose ;
aurais-tu une saine lecture à me conseiller sur la programmation pour
access. Je possède les 2 bouquins de H Inisan qui sont plutôt orientés
vers des apllications.
Christian ATZEL
----------------------------------------------
Conseils d'utilisation, sites recommandés :
http://users.skynet.be/mpfa/
Access Memorandum - Les tablettes d'Anor
www.anor.fr.st
----------------------------------------------


Avatar
ATZEL.CH
"Anor" wrote in message news:<3f27c401$0$1922$...
Bonjour Christan,


| Merci encore, en deux jours d'échanges, j'ai appris plein de choses et
| pas uniquement des formules. Les 7 points pour progresser en SQL sont
| à méditer. je suis en vacances et la pêche ne donne pas grand chose ;
| aurais-tu une saine lecture à me conseiller sur la programmation pour
| access. Je possède les 2 bouquins de H Inisan qui sont plutôt orientés
| vers des apllications.
| Christian ATZEL


à vrai dire, je n'ai *aucun* bouquin sur access, vba ou SQL dans ma biliothèque...

Pour moi, la seule et unique _saine lecture_, ce sont tous les posts du forum pendant 6 mois.
C'est comme ça que je me suis auto-formé ;-)

Au début, tu comprends environ 5% des questions et des réponses qui sont apportées,
Au bout de 6 mois, tu comprends 50% des questions, et au bout d'1 an,
tu dois connaître la réponse à 50% des questions posées (à la louche)

Mais il y aura toujours des questions et des réponses qu'on ne comprendra pas,
ni toi ni personne ;-))

Tiens pour le plaisir, voici un petit bout de code pour créer une table depuis VBA :
avec un petit échantillon de champs.
On peut ensuite rajouter quelques propriétés ....

J'en ai inhibé quelques uns (champs) car si je les met tous et notamment le dernier,
j'ai une erreur Run-time error 3047 "L'enregistrement est trop long",
alors que si on les met tous et qu'on fait un for i = 8 to 17, ça passe ....

Sub gf()

Dim dbs As DAO.Database
Dim tdf As DAO.TableDef
Dim fld As DAO.Field

Dim i As Integer
Dim a(1 To 17) As String
a(1) = "dbBoolean"
a(2) = "dbByte"
a(3) = "dbInteger"
a(4) = "dbLong"
a(5) = "dbCurrency"
a(6) = "dbSingle"
a(7) = "dbDouble"
a(8) = "dbDate"
a(9) = "dbBinary"
a(10) = "dbText"
'a(11) = "dbLongBinary" '(OLE Object)
a(12) = "dbMemo"
'a(15) = "dbGUID"
a(16) = "dbBigInt"
'a(17) = "dbVarBinary"

Set dbs = CurrentDb()
Set tdf = dbs.CreateTableDef("LaTable")
'On Error Resume Next
For i = 1 To 17
If a(i) <> "" Then
Set fld = tdf.CreateField("Chp_" & a(i), i)
fld.OrdinalPosition = i
tdf.Fields.Append fld
Set fld = Nothing
End If
Next i
dbs.TableDefs.Append tdf
RefreshDatabaseWindow
Set tdf = Nothing
Set dbs = Nothing
End Sub


--
à+
Arnaud
----------------------------------------------
Conseils d'utilisation, sites recommandés :
http://users.skynet.be/mpfa/
Access Memorandum - Les tablettes d'Anor
www.anor.fr.st
----------------------------------------------


Bonsoir de Kourou,
OK, chez moi aussi, j'obtiens le message "enregistrement trop long" ;
laissons pour ce soir les mystères de l'informatique. Je ne voudrais
pas me prendre pour le créateur mais avec ces click sur un bouton et
tes lignes de code, je progresse plus vite que le mouton paresseux
broutant les feuilles de bois canon.
Christian ATZEL