0
votes

Sélectionnez dans la table de la liste des CSV

Une liste Python des fichiers CSV doit être chargée à partir de PYODBC. Je ne comprends pas comment écrire la chaîne SQL pour accueillir une variable à la place de la définition explicitement de la table et du fichier de CSV.

Une instruction SQL entièrement fonctionnelle pour un seul CSV ressemble à ceci: xxx

peut être modifié pour accueillir une variable représentant le CSV à l'importation (c.-à-d. Dans [Nom du nom] et la base de données de la base de données)?

Je comprends que c'est une forme similaire à celle-ci: xxx

mais le complexe de la déclaration qui fait référence à une base de données m'a gratter ma tête. xxx


0 commentaires

3 Réponses :


1
votes

Pourquoi n'utilisez-vous pas .format () code> comme vous le faites ci-dessus?

Vous pouvez effectuer ce qui suit: p> xxx pré>

ou Vous pouvez utiliser le format suivant: P>

strSQL = f"SELECT * INTO [{table}] FROM [text;HDR=Yes;FMT=Delimited(,);{database}].first.csv;"


0 commentaires

0
votes

Grâce à la réponse sélectionnée, voici le formatage final qui fonctionne correctement:

strSQL = "SELECT * INTO [{}] FROM [text;HDR=Yes;FMT=Delimited(,);".format(csv_str) + \
          "Database=C:\PathToFolder].{};".format(csv)


0 commentaires

0
votes

Je suis sûr que vous pourriez utiliser Python pour charger des fichiers CSV en accès, mais pourquoi traverser tout le problème. Utilisez simplement l'accès pour importer les fichiers CSV (ne créez pas beaucoup de travail inutile pour vous-même).

Importer des fichiers CSV dans des tableaux distincts: p>

Private Sub Command1_Click()

Dim strPathFile As String, strFile As String, strPath As String
        Dim strTable As String, strBrowseMsg As String
        Dim blnHasFieldNames As Boolean

        ' Change this next line to True if the first row in EXCEL worksheet
        ' has field names
        blnHasFieldNames = False

        strBrowseMsg = "Select the folder that contains the CSV files:"

        strPath = "C:\Users\Excel\Desktop\Coding\LinkedIn\Import all CSV Files into Different Access Tables\"

        If strPath = "" Then
              MsgBox "No folder was selected.", vbOK, "No Selection"
              Exit Sub
        End If

        ' Replace tablename with the real name of the table into which
        ' the data are to be imported
        strTable = "tablename"

        strFile = Dir(strPath & "\*.csv")
        Do While Len(strFile) > 0
              strPathFile = strPath & "\" & strFile

        DoCmd.TransferText acImportDelim, , strTable, strPathFile, blnHasFieldNames

        ' Uncomment out the next code step if you want to delete the
        ' EXCEL file after it's been imported
        '       Kill strPathFile

              strFile = Dir()
        Loop
End Sub


0 commentaires