2010-06-07 5 views
0

J'explore la possibilité de savoir si DoCmd.TransferText fera ce dont j'ai besoin, et il semble que ce ne soit pas le cas. i besoin d'insérer des données si elle n'existe pas et la mettre à jour si elle existelire le fichier texte ligne par ligne et insérer/mettre à jour les valeurs dans le tableau

Je prévois de lire une ligne de fichier texte en ligne comme celui-ci:

Dim intFile As Integer 
Dim strLine As String 

intFile = FreeFile() 
Open myFile For Input As #intFile 
Line Input #intFile, strLine 
Close #intFile 

je suppose que chaque ligne sera record. il sera probablement séparés par des virgules et des champs aura un identificateur de texte " car dans le champ lui-même, je vais avoir des virgules

ma question est de savoir comment pourrais-je lire un fichier texte délimité par des virgules qui a double quotes parfois qualifiés de texte dans une table en accès?

Répondre

1

J'ai suivi vos questions connexes, mais je ne sais pas où vous avez des problèmes. Il semble que vous essayez d'accomplir deux choses avec ce fichier texte import:

  1. importer le fichier texte
  2. enregistrements append ou mise à jour dans un tableau sur la base des données importées

Peut-être serait plus productif d'aborder ces étapes comme deux opérations distinctes, plutôt que d'essayer de les combiner en une seule opération.

Je pensais que l'étape 1 fonctionnait. Si tel est le cas, importez le texte dans une table distincte, tblImport, puis utilisez cette table pour générer les modifications de votre table principale. Si vous vous inquiétez de la saturation de la base de données en raison de l'importation répétée puis de la suppression d'enregistrements dans tblImport, vous pouvez faire de tblImport un lien vers une base de données externe ... afin d'isoler le bloat de celui-ci. Si vous souhaitez une aide plus détaillée pour l'étape 2, je pense que vous devrez nous indiquer comment identifier les enregistrements importés qui n'existent pas dans la table principale et comment faire correspondre les enregistrements importés et les enregistrements de base pour les mises à jour. . Peut-être pourriez-vous supprimer des fiches existantes qui ont leurs homologues dans tblImport, puis ajouter tblImport à votre table principale.

+0

merci c'est effectivement la bonne solution –

+0

btw j'ai besoin d'aide aveC# 2 je suppose que je vais le demander –

+2

Vous pouvez également éviter l'importation en utilisant un IN 'mytextfile.txt 'syntaxe dans le FROM d'un SQL SELECT (ou, d'ailleurs, une UPDATE ou INSERT). –

1

Je suppose ici que votre fichier texte est bien formaté/délimité. En tant que tel, essayez d'enregistrer une macro, puis utilisez l'assistant d'importation. [L'assistant d'importation peut être activé par une ligne de commande et toutes les valeurs nécessaires lui sont transmises par l'appel de fonction.] Ensuite, copiez/déplacez le code généré par la macro dans votre méthode, en fournissant toutes les variables que vous voulez (ceci est un méthode que j'ai utilisée dans le passé).

+0

Je ne pense pas que c'est la bonne solution –

Questions connexes