Une petite correction :Re merci
Remplace le 8 de cette ligne de code :
AppAccess.DoCmd.TransferSpreadsheet acImport, 8, _
"NomTableDeDestinationDesDonnées", _
ThisWorkbook.FullName, True, "Feuil1!A1:G50"
'"Feuil1!A1:G50" : plage de cellules à exporter
PAR
acSpreadsheetTypeExcel15 -> le 15 représente la version de
Microsoft Office que tu as.
MichD
Une petite correction :Re merci
Remplace le 8 de cette ligne de code :
AppAccess.DoCmd.TransferSpreadsheet acImport, 8, _
"NomTableDeDestinationDesDonnées", _
ThisWorkbook.FullName, True, "Feuil1!A1:G50"
'"Feuil1!A1:G50" : plage de cellules à exporter
PAR
acSpreadsheetTypeExcel15 -> le 15 représente la version de
Microsoft Office que tu as.
MichD
Bonjour,Re
je cherche une solution qui a partir d'un bouton dans un userform excel
déclenche la suppression de la table "LES CLIANTS" dans un
fichier access "Listable.accdb"
et creer une nouvelle table access"LES CLIANTS" avec un clé
automatique qui accepte les doublons
depuis un autre fichier excel "xxxxxxx"dans mon fichier access
"Listable.accdb" dans le meme repertoire
merci d'avance
Cordialement
Sub Connecte_base_Access()
Dim rs As Object
Dim Nom_Base, Chemin_Base, SQL ', connstring
Set conn = CreateObject("ADODB.Connection")
Nom_Base = "Listable.accdb"
Chemin_Base = ThisWorkbook.Path & "" & Nom_Base
'chaine de connexion
connstring = "DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};
DBQ=" & Chemin_Base
'Connexion a la base
conn.Open connstring
End Sub
Sub Import_Click()
Dim rs As Object
Dim SQL
Set rs = CreateObject("ADODB.recordset")
SQL = "Delete * from [LES CLIANTS]
rs.Open SQL, conn, 3, 3
rs.Close
MsgBox "Attention: la table est suprimer!!"
End Sub
Bonjour,Re
je cherche une solution qui a partir d'un bouton dans un userform excel
déclenche la suppression de la table "LES CLIANTS" dans un
fichier access "Listable.accdb"
et creer une nouvelle table access"LES CLIANTS" avec un clé
automatique qui accepte les doublons
depuis un autre fichier excel "xxxxxxx"dans mon fichier access
"Listable.accdb" dans le meme repertoire
merci d'avance
Cordialement
Sub Connecte_base_Access()
Dim rs As Object
Dim Nom_Base, Chemin_Base, SQL ', connstring
Set conn = CreateObject("ADODB.Connection")
Nom_Base = "Listable.accdb"
Chemin_Base = ThisWorkbook.Path & "" & Nom_Base
'chaine de connexion
connstring = "DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};
DBQ=" & Chemin_Base
'Connexion a la base
conn.Open connstring
End Sub
Sub Import_Click()
Dim rs As Object
Dim SQL
Set rs = CreateObject("ADODB.recordset")
SQL = "Delete * from [LES CLIANTS]
rs.Open SQL, conn, 3, 3
rs.Close
MsgBox "Attention: la table est suprimer!!"
End Sub
Je n'ai plus l'adresse de l'auteur de cette procédure.Bonsoir
Évidemment, il faut adapter...
Cet exemple montre comment traiter la PrimaryKey et les
propriétés uniques d'un index.
Le code crée une nouvelle table avec deux colonnes.
La PrimaryKey et les propriétés uniques sont employées
pour faire référence à une colonne, la clef
primaire, pour laquelle on ne permet pas des valeurs doubles.
Tu devras charger ces 2 références :
'"Microsot ADO Ext 2.X for dll and security" et
"Microsof ActiveX Data Object 2.8 Library"
IL faut updater la chaîne de connexion à Access, voir à
cette adresse :
https://www.connectionstrings.com/access/
'-----------------------------------------------------------------
Sub PrimaryKeyX()
Dim catNorthwind As New ADOX.Catalog
Dim tblNew As New ADOX.Table
Dim idxNew As New ADOX.Index
Dim idxLoop As New ADOX.Index
Dim colLoop As New ADOX.Column
' Relier le catalogue
catNorthwind.ActiveConnection="Provider=Microsoft.Jet.OLEDB.4.0;"
& _
"data source=c:Program Files" & _
"Microsoft OfficeOfficeSamplesNorthwind.mdb;"
' Nommer nouvelle table
tblNew.Name = "NewTable"
' Apposer un champ numérique et des textes à la nouvelle table.
tblNew.Columns.Append "NumField", adInteger, 20
tblNew.Columns.Append "TextField", adVarWChar, 20
' Apposer le nouvel index principal primaire sur la colonne de NumField
' à la nouvelle table
idxNew.Name = "NumIndex"
idxNew.Columns.Append "NumField"
idxNew.PrimaryKey = True
idxNew.Unique = True
tblNew.Indexes.Append idxNew
' Apposer un index sur TextField à la nouvelle table.
' Noter la technique différente : indication de l'index
' et du nom de colonne comme paramètres de la méthode
d'apposition
tblNew.Indexes.Append "TextIndex", "TextField"
' Apposer la nouvelle table
catNorthwind.Tables.Append tblNew
With tblNew
Debug.Print tblNew.Indexes.Count & " Indexes in " & _
tblNew.Name & " Table"
' Énumérer la collection d'index.
For Each idxLoop In .Indexes
With idxLoop
Debug.Print "Index " & .Name
Debug.Print " Primary key = " & .PrimaryKey
Debug.Print " Unique = " & .Unique
' Énumérer la collection de colonnes de chaque objet d'index.
Debug.Print " Columns"
For Each colLoop In .Columns
Debug.Print " " & colLoop.Name
Next colLoop
End With
Next idxLoop
End With
' Supprimer la nouvelle table car c'est une démonstration
catNorthwind.Tables.Delete tblNew.Name
Set catNorthwind = Nothing
End Sub
'-----------------------------------------------------------------
MichD
Je n'ai plus l'adresse de l'auteur de cette procédure.Bonsoir
Évidemment, il faut adapter...
Cet exemple montre comment traiter la PrimaryKey et les
propriétés uniques d'un index.
Le code crée une nouvelle table avec deux colonnes.
La PrimaryKey et les propriétés uniques sont employées
pour faire référence à une colonne, la clef
primaire, pour laquelle on ne permet pas des valeurs doubles.
Tu devras charger ces 2 références :
'"Microsot ADO Ext 2.X for dll and security" et
"Microsof ActiveX Data Object 2.8 Library"
IL faut updater la chaîne de connexion à Access, voir à
cette adresse :
https://www.connectionstrings.com/access/
'-----------------------------------------------------------------
Sub PrimaryKeyX()
Dim catNorthwind As New ADOX.Catalog
Dim tblNew As New ADOX.Table
Dim idxNew As New ADOX.Index
Dim idxLoop As New ADOX.Index
Dim colLoop As New ADOX.Column
' Relier le catalogue
catNorthwind.ActiveConnection="Provider=Microsoft.Jet.OLEDB.4.0;"
& _
"data source=c:Program Files" & _
"Microsoft OfficeOfficeSamplesNorthwind.mdb;"
' Nommer nouvelle table
tblNew.Name = "NewTable"
' Apposer un champ numérique et des textes à la nouvelle table.
tblNew.Columns.Append "NumField", adInteger, 20
tblNew.Columns.Append "TextField", adVarWChar, 20
' Apposer le nouvel index principal primaire sur la colonne de NumField
' à la nouvelle table
idxNew.Name = "NumIndex"
idxNew.Columns.Append "NumField"
idxNew.PrimaryKey = True
idxNew.Unique = True
tblNew.Indexes.Append idxNew
' Apposer un index sur TextField à la nouvelle table.
' Noter la technique différente : indication de l'index
' et du nom de colonne comme paramètres de la méthode
d'apposition
tblNew.Indexes.Append "TextIndex", "TextField"
' Apposer la nouvelle table
catNorthwind.Tables.Append tblNew
With tblNew
Debug.Print tblNew.Indexes.Count & " Indexes in " & _
tblNew.Name & " Table"
' Énumérer la collection d'index.
For Each idxLoop In .Indexes
With idxLoop
Debug.Print "Index " & .Name
Debug.Print " Primary key = " & .PrimaryKey
Debug.Print " Unique = " & .Unique
' Énumérer la collection de colonnes de chaque objet d'index.
Debug.Print " Columns"
For Each colLoop In .Columns
Debug.Print " " & colLoop.Name
Next colLoop
End With
Next idxLoop
End With
' Supprimer la nouvelle table car c'est une démonstration
catNorthwind.Tables.Delete tblNew.Name
Set catNorthwind = Nothing
End Sub
'-----------------------------------------------------------------
MichD