こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Access2003サブフォームの質問です

質問ですが、
Access2003 VBAで伝票入力を作成しています。
ヘッダーに日付・得意先、明細(サブフォーム)に商品コード・品名などを入力する画面ですが
商品名で同じものが複数が頻繁にあるので、商品名をダブルクリックしたら1行前の商品名
をセットするような仕様にしたいのですが、1行前の商品名取ってくるような事は出来るので
しょうか?
ご存知の方がおられたら、教えてください。

お願い致します

投稿日時 - 2010-12-01 10:25:27

QNo.6355550

困ってます

質問者が選んだベストアンサー

はなはだ、邪道のようですが、ctrlと7キーの同時押しで前レコードの内容を複写できますので、ダブルクリックイベントに
SendKeys "^7", True
を入れればいけるかも知れません。
ただ、SendKeys はVISTA以降のOSだと不具合が出ることもあるようです。

投稿日時 - 2010-12-01 11:15:21

お礼

ありがとうございます。
CTRL+7は知りませんでした。XPでは問題ありませんでした。
簡単な方法が良いと思っていましたので助かりました。

投稿日時 - 2010-12-01 13:40:14

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(3)

「1行前の商品名」が明確に判りませんが、最終入力した商品名でしょうか?
それならばフォームの「更新後処理」で適当な変数に待避させ、ダブルクリックイベントで、そこから商品名に戻してやればよいでしょう。

投稿日時 - 2010-12-01 11:53:02

お礼

ありがとうございます。
これが入力の最終行でなく、3行目でダブルクリックしたら2行目をコピーするようになります。
説明不足ですみません

投稿日時 - 2010-12-01 13:37:32

Option Compare Database

Dim isClick As Boolean

Private Sub 商品名_Click()
  If isClick Then
    Zenchi
  End If
  isClick = False
End Sub

Private Sub 商品名_DblClick(Cancel As Integer)
  isClick = True
End Sub

Public Sub Zenchi()
  SendKeys "^("")", False
End Sub

商品名が空欄の時だけ前値をコピーするのか否かという問題は残りますが・・・。

投稿日時 - 2010-12-01 11:34:51

お礼

ありがとうございます。
教えて頂いた内容でやってみます

投稿日時 - 2010-12-01 13:38:26

あなたにオススメの質問