• ベストアンサー

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

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

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

  • ベストアンサー
回答No.1

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

kirin4247
質問者

お礼

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

その他の回答 (2)

noname#182251
noname#182251
回答No.3

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

kirin4247
質問者

お礼

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

noname#140971
noname#140971
回答No.2

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 商品名が空欄の時だけ前値をコピーするのか否かという問題は残りますが・・・。

kirin4247
質問者

お礼

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

関連するQ&A

専門家に質問してみよう