Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Docmd.TransferText

5 réponses
Avatar
Patrice
Bonjour,

Je me suis créé un format d'importation que j'utilise avec la méthode
"transferText" pour l'importation de données.

DoCmd.TransferText acImportDelim, "Import", "Import", strFileName

Tout va bien lorsque le fichier sélectionné pour l'importation est formaté
correctement. Mais si le fichier sélectionné n'a pas la bonne configuration
Access crée une "Table des erreurs" sans m'en aviser. (Si je fais
l'importation manuellement il m'avise!). J'ai pourtant inséré une trappe
d'erreur dans ma procédure.

Comment puis-je savoir que l'importation s'est déroulé correctement?

Merci

Patrice

5 réponses

Avatar
Thierry (ze Titi)
Bonjour Patrice !

Tout va bien lorsque le fichier sélectionné pour l'importation est formaté
correctement. Mais si le fichier sélectionné n'a pas la bonne configuration
Access crée une "Table des erreurs" sans m'en aviser. (Si je fais
l'importation manuellement il m'avise!). J'ai pourtant inséré une trappe
d'erreur dans ma procédure.
Et on peut la voir, la procédure ?


--
Cordialement,
Thierry

Tout pour réussir avec Access :
http://www.mpfa.info

Avatar
Patrice
Bien sûr:

DoCmd.TransferText acImportDelim, "Import", "Import", strFileName


Bonjour Patrice !

Tout va bien lorsque le fichier sélectionné pour l'importation est formaté
correctement. Mais si le fichier sélectionné n'a pas la bonne configuration
Access crée une "Table des erreurs" sans m'en aviser. (Si je fais
l'importation manuellement il m'avise!). J'ai pourtant inséré une trappe
d'erreur dans ma procédure.
Et on peut la voir, la procédure ?


--
Cordialement,
Thierry

Tout pour réussir avec Access :
http://www.mpfa.info






Avatar
Thierry (ze Titi)
Bonjour Patrice !

DoCmd.TransferText acImportDelim, "Import", "Import", strFileName
Je ne vois aucune trappe d'erreur là-dedans...


--
Cordialement,
Thierry

Tout pour réussir avec Access :
http://www.mpfa.info

Avatar
Patrice
Désolé Thierry,

Voici le code complet de la procédure

Private Sub cmdImport_Click()

On Error GoTo TrappeDerreur

Dim strSQL As String
Dim strFileName, strPathFileName As String
Dim strPwrHouse As String

strNomFile = ""
strPathFileName = ""

'On s'assure que le formaulaire est bien fermé et non masqué
If CurrentProject.AllForms("frmDialogPwrHouse").IsLoaded Then
DoCmd.Close acForm, "frmDialogPwrHouse"
End If

DoCmd.OpenForm "frmDialogPwrHouse", , , , , acDialog

'Vérification du choix de l'usager
If Forms!frmDialogPwrHouse!cmdCancel.Tag = "" Then
strPwrHouse = Forms!frmDialogPwrHouse!ListePwrHouse
strPathFileName = OpenFile("P:", Multi_Sélection, False, TextFile,
12, True, "Select the " & strPwrHouse & " file to import")
If Len(strPathFileName) <> 0 Then
strFileName = Trim(strNomFile)
strFileName = Left(strFileName, Len(strFileName) - 1)
strPathFileName = Trim(strPathFileName)

'Vérification de la powerhouse sélectionnée et du fichier
sélectionné
If Left(strPwrHouse, 5) = Left(strFileName, 5) Then
DoCmd.TransferText acImportDelim, "Import", "Import",
strPathFileName
'Si le transfert s'est effectué correctement
If True Then
strSQL = "UPDATE Import SET Import.[Date] =
DateSerial([year],1,[j_day]), " _
& "Import.PW_House = '" & strPwrHouse & "';"
DoCmd.RunSQL strSQL
ModImport.DataVerification strPwrHouse
End If
Else
MsgBox "The powerhouse selected '" & strPwrHouse & "' is
incompatible with the selected file '" _
& strFileName & "'.", vbCritical, "Warning"
End If
Else
Debug.Print "Null"
End If

End If

'Fermeture du formulaire de la powerhouse
DoCmd.Close acForm, "frmDialogPwrHouse"

SortirTrappe:
Exit Sub

TrappeDerreur:
MsgBox "Error: " & Err.Number & " from cmdImport " _
& vbCrLf & vbCrLf & Err.Description
Resume SortirTrappe

End Sub

Je n'ai aucun message d'erreur si le fichier importer est un fichier texte
quelconque. Mais Access aura généré une table des erreurs

Peut-être devrais-je vérifier s'il y a une table des erreurs pour aviser
l'usager qu'il a sélectionné un fichier non valide??


Bonjour Patrice !

DoCmd.TransferText acImportDelim, "Import", "Import", strFileName
Je ne vois aucune trappe d'erreur là-dedans...


--
Cordialement,
Thierry

Tout pour réussir avec Access :
http://www.mpfa.info






Avatar
Thierry (ze Titi)
Hello Patrice !

Désolé Thierry,
Pô grave ! ;-)


Private Sub cmdImport_Click()

On Error GoTo TrappeDerreur

Dim strSQL As String
Dim strFileName, strPathFileName As String
Dim strPwrHouse As String

strNomFile = ""
strPathFileName = ""

'On s'assure que le formaulaire est bien fermé et non masqué
If CurrentProject.AllForms("frmDialogPwrHouse").IsLoaded Then
DoCmd.Close acForm, "frmDialogPwrHouse"
End If

DoCmd.OpenForm "frmDialogPwrHouse", , , , , acDialog

'Vérification du choix de l'usager
If Forms!frmDialogPwrHouse!cmdCancel.Tag = "" Then
strPwrHouse = Forms!frmDialogPwrHouse!ListePwrHouse
strPathFileName = OpenFile("P:", Multi_Sélection, False, TextFile,
12, True, "Select the " & strPwrHouse & " file to import")
If Len(strPathFileName) <> 0 Then
strFileName = Trim(strNomFile)
strFileName = Left(strFileName, Len(strFileName) - 1)
strPathFileName = Trim(strPathFileName)

'Vérification de la powerhouse sélectionnée et du fichier
sélectionné
If Left(strPwrHouse, 5) = Left(strFileName, 5) Then
DoCmd.TransferText acImportDelim, "Import", "Import",
strPathFileName
'Si le transfert s'est effectué correctement
If True Then
strSQL = "UPDATE Import SET Import.[Date] =
DateSerial([year],1,[j_day]), " _
& "Import.PW_House = '" & strPwrHouse & "';"
DoCmd.RunSQL strSQL
ModImport.DataVerification strPwrHouse
End If
Else
MsgBox "The powerhouse selected '" & strPwrHouse & "' is
incompatible with the selected file '" _
& strFileName & "'.", vbCritical, "Warning"
End If
Else
Debug.Print "Null"
End If

End If

'Fermeture du formulaire de la powerhouse
DoCmd.Close acForm, "frmDialogPwrHouse"

SortirTrappe:
Exit Sub

TrappeDerreur:
MsgBox "Error: " & Err.Number & " from cmdImport " _
& vbCrLf & vbCrLf & Err.Description
Resume SortirTrappe

End Sub

Je n'ai aucun message d'erreur si le fichier importer est un fichier texte
quelconque. Mais Access aura généré une table des erreurs

Peut-être devrais-je vérifier s'il y a une table des erreurs pour aviser
l'usager qu'il a sélectionné un fichier non valide??
Ca me paraît être une bonne solution. D'autant qu'en la parcourant, tu

pourrais même détecter des enregistrements qui auraient été généré en
erreur car ne correspondant au format d'import mais qui auraient dû
être enregistrés quand même.


--
Cordialement,
Thierry

Tout pour réussir avec Access :
http://www.mpfa.info