を、あなたが興味を持っているパケットを選択して表示するためにこれを使用することができますを次のようにパケットのテーブルを作成することができます。私は簡単なVBA手続きを書いたのは、それがとても簡単だったからです。しかし、あなたの状況に適しているかどうかは分かりません。
new_PacketIDの数値列を持つtblPacketsを作成しました。私は、何が起こっているのかをより明確にすることを望んでいました。本当にPacketIDを新しい番号に置き換える必要がある場合は、そのテキストフィールドにCStr(lngPacketID)
を保存する手順を変更できます。これは私が始めたサンプルデータです:
PacketID new_PacketID packet_data
BDFD-2 a
R2D2-22 aa
BDFD-2 b
R2D2-22 bb
EMC2-0 aaa
EMC2-0 bbb
これは手順を実行した後の表です。
PacketID new_PacketID packet_data
BDFD-2 1 a
R2D2-22 3 aa
BDFD-2 1 b
R2D2-22 3 bb
EMC2-0 2 aaa
EMC2-0 2 bbb
とコード...
Public Sub RenumberPacketIDs()
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim lngPacketID As Long
Dim strLastPacketID As String
Dim strSql As String
strSql = "SELECT PacketID, new_PacketID" & vbCrLf & _
"FROM tblPackets" & vbCrLf & _
"ORDER BY PacketID;"
Set db = CurrentDb
Set rs = db.OpenRecordset(strSql)
With rs
Do While Not .EOF
If !PacketID <> strLastPacketID Then
lngPacketID = lngPacketID + 1
strLastPacketID = !PacketID
End If
.Edit
!new_PacketID = lngPacketID
.Update
.MoveNext
Loop
.Close
End With
Set rs = Nothing
Set db = Nothing
End Sub
私はそのようなアプローチは、1回の変換のための細かなことができると思い。ただし、これが繰り返し実行する必要がある操作の場合は、より複雑になる可能性があります。特に、各PacketIDが1つの実行から次の実行に同じ番号で置き換えられる必要がある場合など。 BDFD-2は最初に1に置き換えられました。したがって、手順を実行するたびに1に置き換える必要があります。
アクセスにインポートされた単純なエクセル1 –