人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

ACCESS2003の質問です。
テーブル1のようにフィールドに重複したデータがあり、
そのデータの頭に、重複したデータごとに
01から始まる2桁の連番を付けて
テーブル2を完成させたいです。
VBAでの処理方法を教えてください。

テーブル1

フィールド1

A002
A002
A002
A002
B265
B265
B265
B265
B265
B265
B265
B265
B265
B265
B265
G803
G803

テーブル2

フィールド1

01A002
02A002
03A002
04A002
01B265
02B265
03B265
04B265
05B265
06B265
07B265
08B265
09B265
10B265
11B265
01G803
02G803


●質問者: rupopon
●カテゴリ:コンピュータ 学習・教育
✍キーワード:VBA データ フィールド
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● ふるるP
●60ポイント

いろいろ方法はありますが、とりあえず。

Sub hoge()

Dim oRS As adodb.Recordset

Dim sVal As String

Dim SQL As String

Dim i As Integer

'入力用レコードセット

Set oRS = CurrentProject.Connection.Execute("Select * from [テーブル1] order by [フィールド1]")

'初期値

sVal = oRS.Fields(0)

i = 1

'1件目を登録

SQL = "Insert into [テーブル2] Values('01" & sVal & "')"

CurrentProject.Connection.Execute SQL

oRS.MoveNext

Do Until oRS.EOF

If sVal = oRS.Fields(0) Then

'同じ場合

i = i + 1

Else

'前のレコードと違うので新規に1から開始

i = 1

sVal = oRS.Fields(0)

End If

'登録

SQL = "Insert into [テーブル2] Values('" & Format(i, "00") & sVal & "')"

CurrentProject.Connection.Execute SQL

oRS.MoveNext

Loop

oRS.Close

End Sub

エラー処理を入れていませんが、実際には入れたほうがいいです。

行のブレイク処理(前の行のデータを取っておいて、今の行のデータと比べる)という方法はアルゴリズムとして基本なので覚えておきましょう。

◎質問者からの返答

ありがとうございました。やってみます。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ