VBA ACCESS : erreur 3251, pourquoi?
Résolu
Oukapaka
Messages postés
112
Date d'inscription
Statut
Membre
Dernière intervention
-
blux Messages postés 27131 Date d'inscription Statut Modérateur Dernière intervention -
blux Messages postés 27131 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
Voici le petit bout de code qui m'ennuie énormément. Le but est de sélectionner les données de la colonne F et de créer autant de fichier qu'il y a de données différentes (si ce sont les mêmes, elles iraient dans le même fichier)
Mais je me tape l'erreur 3251 qui dit l'opération n'est pas autorisée... un petit coup de main?
Voici le petit bout de code qui m'ennuie énormément. Le but est de sélectionner les données de la colonne F et de créer autant de fichier qu'il y a de données différentes (si ce sont les mêmes, elles iraient dans le même fichier)
Mais je me tape l'erreur 3251 qui dit l'opération n'est pas autorisée... un petit coup de main?
On Error Resume Next 'boucle qui prend chaque pfc pour l'insérer dans un fichier unique avec son nom de rattachement et son ERD ID Dim F As DAO.Field Dim G As DAO.Field Dim DB As DAO.Database Dim rst As Recordset Set DB = CurrentDb() Set rst = CurrentDb.OpenRecordset("fum&pfc") Set G = rst.Fields![ERD Id] Set F = rst.Fields![Rattaché à Id] rst.MoveFirst While Not rst.EOF For Each F In DB DoCmd.TransferText acExportDelim, "FUM_IMPORT", "FUM_" + F + "_" + G + "_31122011.txt", "C:\Documents and Settings\sghn4628\Desktop\Sujet PFC\FUM_" + F + "_" + G + "_31122011.txt" Next Wend rst.MoveNext rst.Close End Sub
A voir également:
- VBA ACCESS : erreur 3251, pourquoi?
- Acer quick access - Forum logiciel systeme
- Quick Access service ✓ - Forum PC portable
- Désinstaller ACER QUICK ACCESS - Forum Logiciels
- Access appdata - Guide
- Excel compter cellule couleur sans vba - Guide
2 réponses
Salut blux, merci de t'interesser à mon sujet =)
Cette erreur sort juste après le For Each
Cette erreur sort juste après le For Each
Je n'aurais pas fait comme ça, y'a un peu trop de mélange.
Je virerais le foreach (la boucle est déjà faite avec while), la définition des deux champs, de la base et j'attaquerais en direct :
DoCmd.TransferText acExportDelim, "FUM_IMPORT", "FUM_" +rst.fields[rattaché à Id] + "_" + rst.fields[ERD Id] ....
Je virerais le foreach (la boucle est déjà faite avec while), la définition des deux champs, de la base et j'attaquerais en direct :
DoCmd.TransferText acExportDelim, "FUM_IMPORT", "FUM_" +rst.fields[rattaché à Id] + "_" + rst.fields[ERD Id] ....
La boucle me semblait obligatoire parce que dans ce fichier (200.000 lignes) j'dois les regrouper par paquet de X fichiers, X étant = select distinct de F et G (ces données sont les memes, je dois juste les sortir dans le nom du fichier de sortie d'ou les deux champs à déclarer). Je viens quand même de tester et on me parle d'une incompatibilité de type, je ne comprends pas tout à fait pourquoi ou j'ai des types déclarés n'étant pas compatibles
Je n'ai donc pas compris ce que tu souhaites faire précisément parce que l'histoire de dire que si les données sont identiques elles vont dans le même fichier, ça ne marchera pas, les fichiers en sortie seront écrits une bonne fois pour toute. Toute donnée identique conduirait à la création d'un fichier réécrasant l'existant. Il n'y a pas d'append...