Requêtes SQL multiples sous Access
Résolu/Fermé
SilverM-A
Messages postés
82
Date d'inscription
lundi 22 juin 2009
Statut
Membre
Dernière intervention
10 avril 2011
-
30 juin 2009 à 16:22
SilverM-A Messages postés 82 Date d'inscription lundi 22 juin 2009 Statut Membre Dernière intervention 10 avril 2011 - 6 juil. 2009 à 17:47
SilverM-A Messages postés 82 Date d'inscription lundi 22 juin 2009 Statut Membre Dernière intervention 10 avril 2011 - 6 juil. 2009 à 17:47
A voir également:
- Requêtes SQL multiples sous Access
- Access appdata - Guide
- Requête sql pix - Forum Python
- Requête sql date supérieure à ✓ - Forum Programmation
- Acer quick access - Forum logiciel systeme
- Désinstaller ACER QUICK ACCESS - Forum Logiciels
2 réponses
SilverM-A
Messages postés
82
Date d'inscription
lundi 22 juin 2009
Statut
Membre
Dernière intervention
10 avril 2011
76
6 juil. 2009 à 17:47
6 juil. 2009 à 17:47
Voici le bout de code qui m'a permis de contourner le problème.
La fonction Split permet de séparer une chaine de caractère avec le délimiteur passé en paramètre. Il met chaque string résultante dans un tableau de base 0. Il existe plusieurs autres paramètres optionnels à la fonction Split, comme par exemple, le nombre de string résultante et bien d'autre.
'split string sql tabSplit = Split(stringSQL, ";") For cmpt = LBound(tabSplit) To UBound(tabSplit) CurrentDb().Execute tabSplit(cmpt) Next cmpt
La fonction Split permet de séparer une chaine de caractère avec le délimiteur passé en paramètre. Il met chaque string résultante dans un tableau de base 0. Il existe plusieurs autres paramètres optionnels à la fonction Split, comme par exemple, le nombre de string résultante et bien d'autre.
SilverM-A
Messages postés
82
Date d'inscription
lundi 22 juin 2009
Statut
Membre
Dernière intervention
10 avril 2011
76
30 juin 2009 à 19:42
30 juin 2009 à 19:42
Pour ceux que ça peut aider, je vous montre mon code.
Alors voilà, j'ai simplifié pour ne mettre que l'essentiel. Le fait est que j'aimerais ne pas avoir à faire de requête d'insertion chaque fois que je passe dans ma boucle, mais à la fin complètement. Cette façon me donne une erreur sur la ligne
J'ai tenté la même chose avec la ligne
Donc cela me pousse a croire qu'il est impossible de faire ce que je désire. Y a-t-il un autre moyen de faire? voilà ma question.
J'accepte les réponses négatives! Je veux simplement savoir si c'est possible ou non.
Merci!
Option Compare Database Private Sub Command1_Click() Dim sql As String Dim sqlDeux As String Dim rst As DAO.Recordset Dim col As DAO.Recordset Dim sqlString As String 'Numéro d'importation Dim No_Importation As Integer No_Importation = 2 'date et heure table temporaire sql = "SELECT [Date], [Time] FROM [Log96 - tronc];" Set rst = CurrentDb.OpenRecordset(sql) With rst 'traverse les records Do While Not .EOF 'numéro de colonne sqlDeux = "SELECT [Numero_colonne] FROM [Importations_Mesures]" & _ " WHERE [Importation] = " & No_Importation & ";" Set col = CurrentDb.OpenRecordset(sqlDeux) With col 'traverse les colonnes Do While Not .EOF 'traitement '[...] 'next record .MoveNext 'col 'sql string concact sqlString = sqlString & "INSERT INTO [Donnees] ([Date], [Heure])" & _ " VALUES (#" & Format(vardate, "Short Date") & "#," & _ " #" & Format(vartime, "Long Time") & "#);" Loop 'while not .eof .Close 'col End With 'next record .MoveNext 'rst 'Commit sql string CurrentDb().Execute sqlString Loop 'while not .eof .Close 'rst End With End Sub
Alors voilà, j'ai simplifié pour ne mettre que l'essentiel. Le fait est que j'aimerais ne pas avoir à faire de requête d'insertion chaque fois que je passe dans ma boucle, mais à la fin complètement. Cette façon me donne une erreur sur la ligne
CurrentDb().Execute sqlStringL'erreur dit: Characters found after end of SQL statement.
J'ai tenté la même chose avec la ligne
DoCmd.RunSQL sqlStringLe résultat est le même!
Donc cela me pousse a croire qu'il est impossible de faire ce que je désire. Y a-t-il un autre moyen de faire? voilà ma question.
J'accepte les réponses négatives! Je veux simplement savoir si c'est possible ou non.
Merci!