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

[Export Access ]Mise à jour de lignes

3 réponses
Avatar
Laurent M
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

3 réponses

Avatar
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



Avatar
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/

=?Utf-8?B?TGF1cmVudCBN?= écrivait
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






--
A+
Eric
Lien à suivre : http://users.skynet.be/mpfa/

Avatar
Laurent M
c'est la perfection !

merci !