No.4ベストアンサー
- 回答日時:
INSERT INTO 顧客
SELECT 2008 AS お買い上げ年度, 顧客.顧客名 AS 顧客名
FROM 顧客
WHERE (((顧客.お買い上げ年度)=2007));
とんでもないミスをしていました。
No.5
- 回答日時:
#2です。
#2は質問者のご都合に合わなかったようですね。その後この質問とは別に、自分自身のテーブルと基本的に同じで、一部違ったレコードを、同数終わりから追加するのはどうすればよいか考えて下記にいたりました。
質問者の考え(テーブル設計)そのものに、回答で批判が出ています。そう思いますが、それとは別に参考に。
例レコード・テーブル 社員5
ID社員番号氏名英語点数
11山田 三郎3
22大島 義男2
33下田 茂3
44小出 健二4
55中田 卓5
66植田 健3
77近藤 一郎2
88木下 花子5
99木村 重雄6
ーー
Sub ADO005()
Dim cn As ADODB.Connection
Set cn = CurrentProject.Connection
Dim X(4)
' MsgBox cn.Version
strPass = CurrentProject.Path
strname = CurrentProject.Name
' MsgBox strPass & "\" & strname
Set rs = New ADODB.Recordset
rs.Open "社員5", cn, adOpenKeyset, adLockOptimistic
fn = rs.Fields.Count
' MsgBox fn
rn = rs.RecordCount
MsgBox rn
For k = 0 To rn - 1
rs.MoveFirst
rs.Move k
MsgBox rs!社員番号 & "-" & rs!氏名 & "-" & rs!英語点数
X(0) = rs!社員番号
X(1) = rs!氏名
X(2) = rs!英語点数
'-----
rs.AddNew
rs!社員番号 = X(0)
rs!氏名 = X(1)
rs!英語点数 = X(2) + 10
rs.Update
'---
Next k
'---
rs.Close: Set rs = Nothing
cn.Close: Set cn = Nothing
End Sub
英語点数を+10したレコードを、テーブル内に1セット追加しました。質問なら全レコードに「2008」を入れるところです
結果
テーブル 社員5のまま。
ID社員番号氏名英語点数
11山田 三郎3
22大島 義男2
33下田 茂3
44小出 健二4
55中田 卓5
66植田 健3
77近藤 一郎2
88木下 花子5
99木村 重雄6
981山田 三郎13
992大島 義男12
1003下田 茂13
1014小出 健二14
1025中田 卓15
1036植田 健13
1047近藤 一郎12
1058木下 花子15
1069木村 重雄16
珍奇な問題と思うが、WEBにも似たコードは無い様でコード作成には相当苦労しました。
imogasiさん、こんにちは。
なるほど、配列を使う手もあったわけですね。
一人で考えていても、なかなか考えもつかないことでした。
どうもありがとうございました。
No.2
- 回答日時:
方法について色々質問には条件をつけているが
社員5というテーブルをコピー・貼り付けし、名前を社員Cにする。
社員Cのあるフィールドを変える(->2008)
ーー
(操作)
クエリ
デザイン
クエリ
SQL
ユニオン
SQL文として
SELECT * FROM 社員5
UNION ALL SELECT * FROM 社員5C;
実行(!)
これで合体したクエリができる。
これを使うなり、テーブル化してはどうですか。
社員、社員Cのテーブルは削除する。
ADOでやるのはレコードの追加ができて、テーブルそのものの削除など
無いが、プログラムというのは、仕事で単発のものの場合できるだけ避けた方が賢明と思う。
imogasiさん、こんにちは。
説明不足だったようで、いわゆる「年度更新」的な用途となるので
毎年実行させるため、できるだけ単純な方法を模索しておりました。
一度他のテーブルに書き出すのがやはり賢明なアクセスの使い方か
もしれませんね。どうもありがとうございました。
No.1
- 回答日時:
顧客:
お買い上げ年度|顧客名____|
______________2006|鈴木_一郎|
______________2007|中村_主水|
お買い上げ年度|顧客名____|
______________2006|鈴木_一郎|
______________2007|中村_主水|
______________2008|中村_主水|
INSERT INTO 顧客
SELECT 顧客.お買い上げ年度 AS お買い上げ年度, 顧客.顧客名 AS 顧客名
FROM 顧客
WHERE (((顧客.お買い上げ年度)=2007));
クエリで実行できます。
[イミディエイト]
? CNNExecute("INSERT INTO 顧客 SELECT 顧客.お買い上げ年度 AS お買い上げ年度, 顧客.顧客名 AS 顧客名 FROM 顧客 WHERE (((顧客.お買い上げ年度)=2007));")
True
このように、ADOでSQL文を実行する関数を自作してもOKです。
Husky2007さん、こんにちは。
AddNewメソッドで作成するものと思い込んでドツボにはまってました。
SQLは便利で簡単とは聞いてましたが、なかなか手をつけるまでいって
ませんでした。これを機に勉強したいと思います。
どうもありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 経営情報システム accessでの請求管理について 12 2022/06/11 16:20
- その他(データベース) accessについて 2 2022/05/31 16:58
- Access(アクセス) access,vbaでフォルダ内のファイルをテーブルにインポート、ファイル名もフィールドに追加したい 1 2022/08/31 11:11
- Access(アクセス) AccessVBAで降順にするテーブル作成クエリを使用して作成したテーブルを削除し同一のテーブル作成 1 2023/01/06 11:17
- Access(アクセス) access フォーム 大分類、小分類 1 2022/08/11 18:03
- 営業・販売・サービス トラブル客の来店時の対応 私は令和2年~毎年勤務先の人材派遣会社で契約先のスズキディーラーの初売りの 1 2023/01/03 09:53
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- Java リレーションエンティティクラスとは何ですか? 2 2023/02/10 00:02
- Excel(エクセル) Excel 指定した固有番号で、複数の行を削除する方法は? 2 2022/03/30 15:18
- Access(アクセス) アクセスの更新クエリでカレントレコードのみ更新したい 1 2022/06/02 23:32
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ワードでの単純作業の効率化に...
-
文字化け、記号の含まれるフィ...
-
データベースの1要素に複数デー...
-
Access フォームのデータがテー...
-
Access2013VBA 複数のテーブル...
-
Access クロス集計クエリについて
-
Accessにて検索結果の一覧表示...
-
Access IF文でテーブルに存在し...
-
ACCESS2003 Aアクロバットを介...
-
シングルクォーテーションとダ...
-
Accessのwhere条件式について教...
-
Accessで名寄せグループの関係...
-
Access 縦(行)のデータを横(列)...
-
ACCESS で マクロの中でフィ...
-
別のDBからテーブルをコピーす...
-
Access VBAでクエリーのレコー...
-
Excel 2019 のピボットテーブル...
-
「直需」の意味を教えてください
-
エクセルVBAで5行目からオート...
-
Access テキスト型に対する指定...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
データベースの1要素に複数デー...
-
Access IF文でテーブルに存在し...
-
Access VBAでクエリーのレコー...
-
別のDBからテーブルをコピーす...
-
ACCESS で マクロの中でフィ...
-
ワードでの単純作業の効率化に...
-
Access 既に開いているフォー...
-
Access フォームのデータがテー...
-
ワードで保存するファイル名の...
-
シングルクォーテーションとダ...
-
Access レコードロックについて...
-
顧客IDを入力すると顧客名や住...
-
Accessで名寄せグループの関係...
-
Accessデータベースで行と列を...
-
ADOでレコードを閉じるタイミン...
-
Access 縦(行)のデータを横(列)...
-
ファイルメーカーの集計につい...
-
Access 新規入力画面にするコー...
-
Access クエリ このレコードセ...
-
Access2013VBA 複数のテーブル...
おすすめ情報