begin process at 2010 03 16 19:44:38
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive SQL

 > 

Archives

 > 

Problème avec une requête

 > 

vba sous access - insertion d'une requete dans une table


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

vba sous access - insertion d'une requete dans une table

mercredi 4 mai 2005 à 10:40:08 | vba sous access - insertion d'une requete dans une table

bonnaud

Bonjour,

J'ai fait une requête sous access en vba qui me permet de calculer un nouveau champ que j'ai nommé total à partir d'une table.
J'arrive à visionner cette requête sous le nom de R_Conso.
J'aimerai maintenant insérer ce champ total créé par cette requête dans une autre table existante.

Est-ce que cela est possible et comment faut-il faire ?

Merci d'avance. 
vendredi 6 mai 2005 à 16:45:53 | Re : vba sous access - insertion d'une requete dans une table

tecman

Salut bonnaud.

Je ne comprend pas pourquoi tu tiens à inclure un nouveau champ.
Il me semble plus judicieux de structurer tes tables et ensuite de les mettre à jour à l'aide d'une requête
(du style UPDATE maRequete INNER JOIN maTable ON maRequete.id = maTable.id SET maTable.total = [maRequete].[total];).

Cela te permet ainsi de conserver la structure des tables et des droits et contraintes associées.


Tecman

mardi 10 mai 2005 à 10:52:08 | Re : vba sous access - insertion d'une requete dans une table

bonnaud

Salut Tecman.

J'ai essayé de faire ce que tu m'avais dit (ce qui me parait effectivement beaucoup plus correct) mais access me dit "Too few parameters".

En fait, je dispose d'une table que j'ai importée. Je veux garder certains champs de cette table et en rajouter en faisant des calculs que j'ai fait à l'aide de requêtes.

Voici le code :

Public Sub Insert()

Dim MaBD As Database
Dim MonSQL As String
Dim MonSQL2 As String
Dim MonSQL3 As String
Dim MonSQL4 As String

Set MaBD = CurrentDb()
MonSQL = "SELECT  FOURNISSEUR,[TYPE FICHIER],[TYPE PIECE],[DATE PAIEMENT], [NUMERO FACTURE],[DATE FACTURE],[MODE PAIEMENT], [CODE BANQUE], [SOCIETE FACTUREE], [COMPTE DE FACTURATION],[AUTRE REFERENCE], [NUMERO MARCHE], [NUMERO CONTRAT SERVICE],[DATE DEBUT FACTURE CP],[DATE FIN FACTURE CP],[COMPTE UTILISATEUR],[NOM USUEL SITE UTILISATEUR] INTO Table1 FROM Table8"

MaBD.Execute MonSQL

MonSQL2 = "SELECT Table8.[NOM SITE INSTALLE], RoundCost (sum (RoundCost([QUANTITE CONSOMMEE]*[TARIF UNITAIRE CONSO]/60))) AS Total INTO Table2 FROM Table8 GROUP BY Table8.[NOM SITE INSTALLE] " 'requête qui calcule la conso avant reduction  Q conso * Tarif unitaire et fait la somme pour chaque site'

MaBD.Execute MonSQL2

MonSQL3 = "UPDATE Table1 INNER JOIN Table2 ON Table1.id = Table2.id SET Table2.total = Table1.total"

MaBD.Execute MonSQL3

MaBD.Close
End Sub

En clair, j'ai importé un fichier excel sous la table8 et j'ai inséré certains champs dans la table1. Je fais ensuite des calculs avec la table8 et je voudrais donc insérer ce calcul dans ma nouvelle table (la table1). Or il me dit "Too few Parameters" quand j'exécute MonSQL3.

Que dois je faire pour contourner ce problème ?

Merci pour ton aide.

Bonnaud

mardi 10 mai 2005 à 11:20:57 | Re : vba sous access - insertion d'une requete dans une table

tecman

Oups !!

Tout d'abord, je te conseillerais de modifier le nom de tes champs.
Il est ainsi recommandé de ne pas insérer de code non ASCII dans les nommages. Donc évites les espaces (préfère le _ ) les accents et autres signes cabalistiques pouvant ne pas permettre une interprétation par les machines.
Personnellement, pour les nommages mon principe et d'abord de nommer l'objet puis son(ses) qualifiant(s). Ainsi [TYPE FICHIER] devriendrait fichierType (j'utilise les majuscules -méthode Hongroise- pour séparer les mots).

Pour la mise à jour, pourquoi faire des calculs dans une table puis l'insérer dans une autre. Autant faire directement la mise à jour dans la table voulue.
Le fait d'importer des données d'une table dans une autre et faire ensuite les calculs n'est pas optimun.
Il te faut garder à l'esprit que l'espace mémoire est une richesse qu'il est nécessaire de préserver; même si actuellement tu n'es pas confronter à cette problématique avec tes tables Access. Entre la gestion des index, les accès écriture-lecture et autres, tout ceci est très gourmand en CPU.

Je te conseillerais donc de conserver les données à un seul endroit. Evites les copies de table à table, car cela complique les mises à jour (quelles sont les bonnes données ?).
Met à jour les champs selon tes calculs dans cette table.
Créé une vue (requête de sélection sous Access) pour ne voir que les données voulues.

Bon courage.

PS : Aprés renommage, peux-tu m'envoyer ta base si elle n'est pas trop confidentielle ?
Tecman
jeudi 12 mai 2005 à 10:17:17 | Re : vba sous access - insertion d'une requete dans une table

bonnaud

Re !

Je suis toujours perdu. En fait, ma table est un fichier excel que j'ai importé sous access.
Je dois faire des calculs dessus. Comme tu l'as compris, je fais une requête. Cette requete
 me calcule 3 nouveaux champs (je peux pas faire autrement car les champs sont liés).
J'arrive à visionner cette requete qui est donc une table à 3 champs.
Et je voudrais insérer ces 3 champs dans une nouvelle table qui sera ma table finale
(elle comprendra également d'autres champs).  
Comment pouvoir insérer ces champs dans cette table ?
Je n'ai toujours pas trouvé de solutions.

Merci de ton aide.

Bonnaud.

PS : Ces données sont confidentielles, sinon je t'aurais envoyé la base
sans aucun problème.



Cette discussion est classée dans : vba, access, table, requête, insertion


Répondre à ce message

Sujets en rapport avec ce message

l equivalent de create table en access vba [ par arcenik ] bonjour!je suis un débutant sous access et vba plus précisément access 2002je suis plus à l'aise sur oracle 10gj'aimerai connaitre si il existe un equ access vba [ par chaudier37 ] Bonjourje travaille dans access par vba. j'ai fait des tables qui se remplissent par des formulaires et des boites de dialogues. tout va bien. seuleme Copier une requête filtrée dans une table [ par mbachir84 ] Bonjour à tous, Voici mon problème. J'ai plusieurs requêtes qui dépendent toutes d'une requête principale "rqt Preparation Query". Ainsi, lorsque requête update avec select [ par bies ] Bonjour!!! besoin d'aide car çà fait des heures que je suis sur cette requête Au départ, j'ai ma table1 dont un extrait ci dessous. dans cette table, importation de donnees de excel vers access vers plusieurs tables avec intégrité referentielle [ par mnamnt ] cracra, Bonjour comment faire pour importer un feuille excel vers access dansplusieurs tables existantes en respectant l'integrité referentielle . L'a SQL/VBA - Regrouper donné en fonction d'une autre table [ par Darm ] Bonjour à tous, il est très rare que je ne trouve solution sur ce forum, mais là je dois dire je suis complètement largué. Je ne sais même si il exist Lenteur d'execution dans une requte [ par lidybekham07 ] bonsoir, mon problème est le suivant j'ai creé une requete qui calcule le chiffre d'affaire ht d'un client ainsi que son total TVA,Total Remise,,... Problème d'insertion d'un char dans une table [ par Trucplock ] Bonjours, Voilà, alors je reste bloqué sur un problème depuis plusieurs heures. J'ai un formulaire à faire avec un tableau à remplir, chaque ligne co Requête LIKE Access [ par ansizak ] Bonjour à tous.. Je reste dans l'incompréhension totale devant cette requête qui ne fonctionne pas: SELECT * from channel WHERE channelname LIKE 'TV Demande pour une requête SQL URGENT [ par zeydoun ] Bonjour, J'ai 2 Tables publications et auteurs et je veux ajouter des champs dans la table publications o


Nos sponsors


Sondage...

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,359 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales