je suis toujours dans mon export de données Excel vers Access, et je
rencontre un nouveau problème. La fonction update utilisée par le recordset
insère de nouvelles lignes dans ma BDD. Je voudrais pouvoir mettre à jour
les lignes de la BDD. Comment faire?
Sub ADOFromExcelToAccess()
' exports data from the active worksheet to a table in an Access database
' this procedure must be edited before use
Dim cn As ADODB.Connection, rs As ADODB.Recordset, r As Long
Dim DBPath As String
DBPath = "J:\bdd.mdb"
' connect to the Access database
Set cn = New ADODB.Connection
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0; " & _
"Data Source=" & DBPath & ";"
' open a recordset
Set rs = New ADODB.Recordset
rs.Open "INSTRUMENT", cn, adOpenKeyset, adLockOptimistic, adCmdTable
' all records in a table
r = 5 ' the start row in the worksheet
Do While Len(Range("B" & r).Formula) > 0
' repeat until first empty cell in column A
With rs
.AddNew ' create a new record
' add values to each field in the record
.Fields("Instrument_id") = Range("B" & r).Value
.Fields("Name") = Range("C" & r).Value
.Fields("ShortName") = Range("D" & r).Value
.Update ' stores the new record
End With
r = r + 1 ' next row
Loop
rs.Close
Set rs = Nothing
cn.Close
Set cn = Nothing
End Sub
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Pounet95
Re, Et ma réponse dans le fil précédent ? Elle a servi a quelque chose ou pas ? Si elle ne convient pas, il est quand même bon de le signaler Merci -- Pounet95 on trouve tout ( ou presque ) http://www.excelabo.net/
"Laurent M" a écrit dans le message de news:
Bonjour,
je suis toujours dans mon export de données Excel vers Access, et je rencontre un nouveau problème. La fonction update utilisée par le recordset insère de nouvelles lignes dans ma BDD. Je voudrais pouvoir mettre à jour les lignes de la BDD. Comment faire?
Sub ADOFromExcelToAccess() ' exports data from the active worksheet to a table in an Access database ' this procedure must be edited before use Dim cn As ADODB.Connection, rs As ADODB.Recordset, r As Long Dim DBPath As String
DBPath = "J:bdd.mdb"
' connect to the Access database Set cn = New ADODB.Connection cn.Open "Provider=Microsoft.Jet.OLEDB.4.0; " & _ "Data Source=" & DBPath & ";" ' open a recordset Set rs = New ADODB.Recordset rs.Open "INSTRUMENT", cn, adOpenKeyset, adLockOptimistic, adCmdTable ' all records in a table r = 5 ' the start row in the worksheet Do While Len(Range("B" & r).Formula) > 0 ' repeat until first empty cell in column A With rs .AddNew ' create a new record ' add values to each field in the record .Fields("Instrument_id") = Range("B" & r).Value .Fields("Name") = Range("C" & r).Value .Fields("ShortName") = Range("D" & r).Value .Update ' stores the new record End With r = r + 1 ' next row Loop rs.Close Set rs = Nothing cn.Close Set cn = Nothing End Sub
Re,
Et ma réponse dans le fil précédent ? Elle a servi a quelque chose ou pas ?
Si elle ne convient pas, il est quand même bon de le signaler
Merci
--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/
"Laurent M" <LaurentM@discussions.microsoft.com> a écrit dans le message de
news: 3536DD59-53A0-4427-857E-A34A09E00338@microsoft.com...
Bonjour,
je suis toujours dans mon export de données Excel vers Access, et je
rencontre un nouveau problème. La fonction update utilisée par le
recordset
insère de nouvelles lignes dans ma BDD. Je voudrais pouvoir mettre à jour
les lignes de la BDD. Comment faire?
Sub ADOFromExcelToAccess()
' exports data from the active worksheet to a table in an Access database
' this procedure must be edited before use
Dim cn As ADODB.Connection, rs As ADODB.Recordset, r As Long
Dim DBPath As String
DBPath = "J:bdd.mdb"
' connect to the Access database
Set cn = New ADODB.Connection
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0; " & _
"Data Source=" & DBPath & ";"
' open a recordset
Set rs = New ADODB.Recordset
rs.Open "INSTRUMENT", cn, adOpenKeyset, adLockOptimistic, adCmdTable
' all records in a table
r = 5 ' the start row in the worksheet
Do While Len(Range("B" & r).Formula) > 0
' repeat until first empty cell in column A
With rs
.AddNew ' create a new record
' add values to each field in the record
.Fields("Instrument_id") = Range("B" & r).Value
.Fields("Name") = Range("C" & r).Value
.Fields("ShortName") = Range("D" & r).Value
.Update ' stores the new record
End With
r = r + 1 ' next row
Loop
rs.Close
Set rs = Nothing
cn.Close
Set cn = Nothing
End Sub
Re, Et ma réponse dans le fil précédent ? Elle a servi a quelque chose ou pas ? Si elle ne convient pas, il est quand même bon de le signaler Merci -- Pounet95 on trouve tout ( ou presque ) http://www.excelabo.net/
"Laurent M" a écrit dans le message de news:
Bonjour,
je suis toujours dans mon export de données Excel vers Access, et je rencontre un nouveau problème. La fonction update utilisée par le recordset insère de nouvelles lignes dans ma BDD. Je voudrais pouvoir mettre à jour les lignes de la BDD. Comment faire?
Sub ADOFromExcelToAccess() ' exports data from the active worksheet to a table in an Access database ' this procedure must be edited before use Dim cn As ADODB.Connection, rs As ADODB.Recordset, r As Long Dim DBPath As String
DBPath = "J:bdd.mdb"
' connect to the Access database Set cn = New ADODB.Connection cn.Open "Provider=Microsoft.Jet.OLEDB.4.0; " & _ "Data Source=" & DBPath & ";" ' open a recordset Set rs = New ADODB.Recordset rs.Open "INSTRUMENT", cn, adOpenKeyset, adLockOptimistic, adCmdTable ' all records in a table r = 5 ' the start row in the worksheet Do While Len(Range("B" & r).Formula) > 0 ' repeat until first empty cell in column A With rs .AddNew ' create a new record ' add values to each field in the record .Fields("Instrument_id") = Range("B" & r).Value .Fields("Name") = Range("C" & r).Value .Fields("ShortName") = Range("D" & r).Value .Update ' stores the new record End With r = r + 1 ' next row Loop rs.Close Set rs = Nothing cn.Close Set cn = Nothing End Sub
Eric
Bonjour Laurent M,
En supposant que tu veuilles mettre à jour la table, à partir du 1er enregistrement, avec les infos de la ligne 5 jusqu'à la derniere ligne renseignée, en colonne B, de ta feuille,
dans ton code :
- supprimes le .AddNew car là tu ajoutes à la table et - mets derriere le .Update .MoveNext pour te déplacer sur l'enregistrement suivant de la table.
(Attention au cas où la table serait vide, cela provoquerait une erreur)
-- A+ Eric Lien à suivre : http://users.skynet.be/mpfa/
Sub ADOFromExcelToAccess() ' exports data from the active worksheet to a table in an Access database ' this procedure must be edited before use Dim cn As ADODB.Connection, rs As ADODB.Recordset, r As Long Dim DBPath As String
DBPath = "J:bdd.mdb"
' connect to the Access database Set cn = New ADODB.Connection cn.Open "Provider=Microsoft.Jet.OLEDB.4.0; " & _ "Data Source=" & DBPath & ";" ' open a recordset Set rs = New ADODB.Recordset rs.Open "INSTRUMENT", cn, adOpenKeyset, adLockOptimistic, adCmdTable ' all records in a table r = 5 ' the start row in the worksheet Do While Len(Range("B" & r).Formula) > 0 ' repeat until first empty cell in column A With rs .AddNew ' create a new record ' add values to each field in the record .Fields("Instrument_id") = Range("B" & r).Value .Fields("Name") = Range("C" & r).Value .Fields("ShortName") = Range("D" & r).Value .Update ' stores the new record End With r = r + 1 ' next row Loop rs.Close Set rs = Nothing cn.Close Set cn = Nothing End Sub
-- A+ Eric Lien à suivre : http://users.skynet.be/mpfa/
Bonjour Laurent M,
En supposant que tu veuilles mettre à jour la table, à partir du 1er
enregistrement, avec les infos de la ligne 5 jusqu'à la derniere ligne
renseignée, en colonne B, de ta feuille,
dans ton code :
- supprimes le .AddNew car là tu ajoutes à la table
et
- mets derriere le .Update
.MoveNext
pour te déplacer sur l'enregistrement suivant de la table.
(Attention au cas où la table serait vide, cela provoquerait une erreur)
--
A+
Eric
Lien à suivre : http://users.skynet.be/mpfa/
Sub ADOFromExcelToAccess()
' exports data from the active worksheet to a table in an Access
database ' this procedure must be edited before use
Dim cn As ADODB.Connection, rs As ADODB.Recordset, r As Long
Dim DBPath As String
DBPath = "J:bdd.mdb"
' connect to the Access database
Set cn = New ADODB.Connection
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0; " & _
"Data Source=" & DBPath & ";"
' open a recordset
Set rs = New ADODB.Recordset
rs.Open "INSTRUMENT", cn, adOpenKeyset, adLockOptimistic,
adCmdTable ' all records in a table
r = 5 ' the start row in the worksheet
Do While Len(Range("B" & r).Formula) > 0
' repeat until first empty cell in column A
With rs
.AddNew ' create a new record
' add values to each field in the record
.Fields("Instrument_id") = Range("B" & r).Value
.Fields("Name") = Range("C" & r).Value
.Fields("ShortName") = Range("D" & r).Value
.Update ' stores the new record
End With
r = r + 1 ' next row
Loop
rs.Close
Set rs = Nothing
cn.Close
Set cn = Nothing
End Sub
--
A+
Eric
Lien à suivre : http://users.skynet.be/mpfa/
En supposant que tu veuilles mettre à jour la table, à partir du 1er enregistrement, avec les infos de la ligne 5 jusqu'à la derniere ligne renseignée, en colonne B, de ta feuille,
dans ton code :
- supprimes le .AddNew car là tu ajoutes à la table et - mets derriere le .Update .MoveNext pour te déplacer sur l'enregistrement suivant de la table.
(Attention au cas où la table serait vide, cela provoquerait une erreur)
-- A+ Eric Lien à suivre : http://users.skynet.be/mpfa/
Sub ADOFromExcelToAccess() ' exports data from the active worksheet to a table in an Access database ' this procedure must be edited before use Dim cn As ADODB.Connection, rs As ADODB.Recordset, r As Long Dim DBPath As String
DBPath = "J:bdd.mdb"
' connect to the Access database Set cn = New ADODB.Connection cn.Open "Provider=Microsoft.Jet.OLEDB.4.0; " & _ "Data Source=" & DBPath & ";" ' open a recordset Set rs = New ADODB.Recordset rs.Open "INSTRUMENT", cn, adOpenKeyset, adLockOptimistic, adCmdTable ' all records in a table r = 5 ' the start row in the worksheet Do While Len(Range("B" & r).Formula) > 0 ' repeat until first empty cell in column A With rs .AddNew ' create a new record ' add values to each field in the record .Fields("Instrument_id") = Range("B" & r).Value .Fields("Name") = Range("C" & r).Value .Fields("ShortName") = Range("D" & r).Value .Update ' stores the new record End With r = r + 1 ' next row Loop rs.Close Set rs = Nothing cn.Close Set cn = Nothing End Sub
-- A+ Eric Lien à suivre : http://users.skynet.be/mpfa/