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: p> 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)? P> Je comprends que c'est une forme similaire à celle-ci: p> mais le complexe de la déclaration qui fait référence à une base de données m'a gratter ma tête. p>
3 Réponses :
Pourquoi n'utilisez-vous pas Vous pouvez effectuer ce qui suit: p> ou Vous pouvez utiliser le format suivant: P> .format () code> comme vous le faites ci-dessus?
strSQL = f"SELECT * INTO [{table}] FROM [text;HDR=Yes;FMT=Delimited(,);{database}].first.csv;"
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)
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