プロが教えるわが家の防犯対策術!

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

お願い致します

A 回答 (3件)

はなはだ、邪道のようですが、ctrlと7キーの同時押しで前レコードの内容を複写できますので、ダブルクリックイベントに


SendKeys "^7", True
を入れればいけるかも知れません。
ただ、SendKeys はVISTA以降のOSだと不具合が出ることもあるようです。
    • good
    • 0
この回答へのお礼

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

お礼日時:2010/12/01 13:40

「1行前の商品名」が明確に判りませんが、最終入力した商品名でしょうか?


それならばフォームの「更新後処理」で適当な変数に待避させ、ダブルクリックイベントで、そこから商品名に戻してやればよいでしょう。
    • good
    • 0
この回答へのお礼

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

お礼日時:2010/12/01 13:37

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

商品名が空欄の時だけ前値をコピーするのか否かという問題は残りますが・・・。
    • good
    • 0
この回答へのお礼

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

お礼日時:2010/12/01 13:38

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!