No.9ベストアンサー
- 回答日時:
>ボタン経由は避けたいと思います。
>入力の流れの中でスイッチで出来ればと考えています。
レコード移動時イベントを使います
新規レコードに移動したとき
直前入力したレコードの値をコピーし新規レコードに貼り付ければいいんですね
レコード移動時に下のようなコードを書きます
コピー中フラグをStaticで定義
Ifフラグがオフなら
If新規レコードなら
フラグオン
前のレコードに移動
セットフォーカス
コピー
新規レコードに移動
貼り付け
フラグオフ
End If
End If
レコードを移動するたびにイベントが発生します
これによって無限ループにおちいらないように
フラグを設けています
この回答への補足
”前のレコードに移動して、各フィールドの値(文字)をコピーして、
今回の入力が前回のデータと同じであれば貼り付ける”という手順を
VBAでやらせたかったのですが・・・・
前のレコードに移動するのをVBAできる方法をご教授お願い致します。
有難うございました。
フォームにテキストボックスを必要なだけ付加し、非表示にして、
データを一時保管させ、さらにテキストボックスを付加し、それが「1」の場合に、先にこしらえたテキストボックスの内容をやり取り
する様に致しました。
問題解決です。
No.10
- 回答日時:
>”前のレコードに移動して、各フィールドの値(文字)をコピーして、
>今回の入力が前回のデータと同じであれば貼り付ける”という手順を
>VBAでやらせたかったのですが・・・・
これなら最初に回答した、新規レコードにコピーでいいんじゃないですか
ボタンがいやだとおっしゃいますが、コピーをするには何らかの意思表示が必要です
移動だけではそのレコードをコピーしたいかどうか分かりません
移動だけで何でもかんでもコピーしたら要らない物がガパガパコピーされますよ
ボタンの代わりにダブルクリックでというのも可能です
その場合ウィザードの支援はありませんから
ボタンのウィザードで作ったものをダブルクリックイベントに移し変えればいいですね
>前のレコードに移動するのをVBAできる方法をご教授お願い致します。
DoCmd.GoToRecord(ObjectType, ObjectName, Record, Offset)
でも調べてみれば
ご教授有難うございます。
コントロール(テキストボックス等)のクリック、ダブル
クリックでの呼び出しは、テキストボックスのデフォルト操作で
出来る様です。(イベント発生時の表示)
今、考えていますのは、新規レコード入力の為のフォームの入力順2の
テキストボックス(デフォルトは「0」)に「1」を入力したときに、
以下のフィールド(7項目)全てに前の各レコードの内容が表示される
様にしたいのです。(「0」の時は表示なしで手入力)
今まで、教えて頂いた方法で考えて見ます。
いろりろお手を取らしましてすみませんでした。
No.8
- 回答日時:
補足: 既定値方式について。
tab1:
[ID]_[Zip]____[Address1]_[Address2]_[Address3]_[HouseNumber]
_01__1430016___東京都_____大田区_____大森北_____111-111
で、[ID]と[HouseNumber]以外を連続データ入力するとします。
この場合、[ID]=1、2、3がある場合、4を入力する時のみ3を4へコピー。
2を訂正する場合に、コピーはしないものとします。
つまり、事実上、新規レコード時発生のみコピー。
で、こういう仕掛けは次のようです。
Option Compare Database
Option Explicit
Dim isNewRecord As Boolean
Private Sub Form_AfterUpdate()
If isNewRecord Then
Me.Zip.DefaultValue = """" & Me.Zip & """"
Me.Address1.DefaultValue = """" & Me.Address1 & """"
Me.Address2.DefaultValue = """" & Me.Address2 & """"
Me.Address3.DefaultValue = """" & Me.Address3 & """"
End If
End Sub
Private Sub Form_Current()
isNewRecord = Me.NewRecord
End Sub
Private Sub Form_Load()
Me.Zip.DefaultValue = """" & DLookup("Zip", "tab1") & """"
Me.Address1.DefaultValue = """" & DLookup("Address1", "tab1") & """"
Me.Address2.DefaultValue = """" & DLookup("Address2", "tab1") & """"
Me.Address3.DefaultValue = """" & DLookup("Address3", "tab1") & """"
End Sub
問題は、フォームロード時の既定値の最適化です。
例では最新レコードを表示するための条件を指定していません。
ここは、それぞれに工夫。
で、で、これで目的は達成するかと思います。
なお、既定値方式はInsertイベントが発生しないので便利です。
No.7
- 回答日時:
#3、#6です。
面白いのでもう少しやってみましたOption Compare Database
Dim Pnames(50) As String
Dim n, i As Integer
Private Sub Form_AfterUpdate()
RecordItem
End Sub
Private Sub Form_Current()
If IsNull(Form_フォーム2.id) Then
For i = 0 To n - 1
If Form_フォーム2.Controls(i).ControlType = acTextBox Then
On Error GoTo skip2
Form_フォーム2.Controls(i) = Pnames(i)
skip2:
End If
Next i
End If
RecordItem
End Sub
Public Sub RecordItem()
n = Form_フォーム2.Controls.Count
For i = 0 To n - 1
If Form_フォーム2.Controls(i).ControlType = acTextBox Then
Pnames(i) = Form_フォーム2.Controls(i)
End If
Next i
End Sub
これでいくつテキストボックスがあってもコピーされるでしょう。コピーされては困るところは if 文などでスキップしてください。
ちなみにVBAは前から嫌いでしたが、ますます嫌いになりました。コーディングしていて、いらいらさせられること甚だしい。
いらいらさせまして、申し訳ありません。
目的は、直前のレコードの中の幾つかのフィールドデータを
コピーしたかったのですが・・・
私もVisualBasicでなら2元テーブル(マトリックス)データの呼び出しぐらい何とかできるのですが、如何せんアクセスのテーブルの
データの呼び出し方が分からなかったもので・・・・
いろいろご教授有難うございました。
No.6
- 回答日時:
#3です。
ご質問の意味を「直前のレコードを参照したい」のかと誤解していました。同じデータを入力したいのであれば。Dim pname As String
Private Sub Form_AfterUpdate()
RecordItem
End Sub
Private Sub Form_Current()
Form_フォーム2.namex = pname
If IsNull(Form_フォーム2.xname) Then
Form_フォーム2.xname = pname
End If
RecordItem
End Sub
Public Sub RecordItem()
On Error GoTo skip1
pname = Form_フォーム2.xname
skip1:
End Sub
「xname」テキストボックス一つだけですが、必要なだけ増やしてください。
フォームにテキストボックスを必要な数だけこしらえて、これに
各データを一時置きし、ご教授のようにデータのやり取りをする様に
しました。問題解決です。有難うございました。
No.5
- 回答日時:
コピーしたいフィールドの既定値を新規レコードの時に更新。
これでも目的は達成されると思います。
常に、一つ手前のレコードをコピーなんてありえない話ですから・・・。
この回答への補足
ご回答有難うございます。
データ入力でロットNo.(主キー)以外は全く同じなのがいくつも続く
時があります。スイッチを利用してロットNo.以外のデータを
コピーしたいのです。・・・・・
有難うございました。規定値は使わずにテキストボックスにダイレクトにデータがコピーできるようにし、スイッチ用のテキストボックスの
内容で一時保管していたデータを呼び出す様に致しました。
問題解決です。
No.4
- 回答日時:
Accessでは、[Ctrl][Shift][2]と押せば、一つ前のフィールドがコピーされます。
で、この機能を利用するのも一つの手です。
で、私は、[F6]を押せば一つ前のフィールドがコピーされるようにしています。
SendKeys "^("")", False
つまり、[F6]キーが押されたら、このコードが走る仕掛けです。
で、結構、ユーザは多用しているようです。
有難うございます。
ファンクション・キーへの割付は同一レコード内で、
次のフィールドへのデータのコピーによく使用しておりました。
今、困っているのは、前レコードの同一フィールドの内容を
表示させる事なのですが、それも複数フィールドを同時に
と考えております。
フォームのテキストボックスの内容を一時保管する方法が
分かればいいのですが・・・・
No.3
- 回答日時:
アクセスには「レコード移動前」「レコード移動後」でイベントが発生しないので、面倒ですが、以下のコードで一応前のデータを表示できます
Dim pid, pname As String
Private Sub Form_Current()
Form_フォーム2.idx = pid
Form_フォーム2.namex = pname
End Sub
Private Sub id_AfterUpdate()
RecordItem
End Sub
Private Sub id_Enter()
RecordItem
End Sub
Private Sub xname_AfterUpdate()
RecordItem
End Sub
Private Sub xname_Enter()
RecordItem
End Sub
Public Sub RecordItem()
On Error GoTo skip1
pid = Form_フォーム2.id
pname = Form_フォーム2.xname
skip1:
End Sub
idとnameをidx、namex非連結テキストボックスに表示するだけですが、適当にチューニングしてください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
【お題】 ・存在しそうで存在しないモノマネ芸人の名前を教えてください
-
大人になっても苦手な食べ物、ありますか?
大人になっても、我慢してもどうしても食べれないほど苦手なものってありますよね。 あなたにとっての今でもどうしても苦手なものはなんですか?
-
CDの保有枚数を教えてください
ひとむかし前はCDを買ったり借りたりが主流でしたが、サブスクで簡単に音楽が聴ける今、CDを手に取ることも減ってきたかと思います。皆さんは2024年現在、何枚くらいCDをお持ちですか?
-
自分のセンスや笑いの好みに影響を受けた作品を教えて
子どもの頃に読んだ漫画などが その後の笑いの好みや自分自身のユーモアのセンスに影響することがあると思いますが、 「この作品に影響受けてるな~!」というものがあれば教えてください。
-
架空の映画のネタバレレビュー
映画のCMを見ていると、やたら感動している人が興奮で感想を話していますよね。 思わずストーリーが気になってしまう架空の感動レビューを教えて下さい!
-
前のレコードの値を自動で入れたい
PowerPoint(パワーポイント)
-
Accessでフォーム上に 直前の データを表示させるには
Access(アクセス)
-
「Access」のフォームで、同じデータの入力の手間を省くには?
Access(アクセス)
-
-
4
レコードを保存するコード アクセスvba
その他(Microsoft Office)
-
5
ACCESSでのひとつ前レコードの求め方について
その他(Microsoft Office)
-
6
1つ前のレコードのフィールドをコピーするVBAについて
Access(アクセス)
-
7
前のレコードの合計に現レコードの値を加えたいのです。
Access(アクセス)
-
8
ACCESS フォームで入力データを残したいです。
その他(Microsoft Office)
-
9
ACCESSのフォームで次のレコードに移動しない方法を教えてください
その他(データベース)
-
10
Accessのフォーム上にレコード数とレコード番号の表示
その他(データベース)
-
11
テキストボックスに入力した値を、次に入れ替えるまで保持させたいのですが、どのような方法があるでしょう
Access(アクセス)
-
12
Access レポート印刷するときに1ページに収める方法
Access(アクセス)
-
13
カレントレコードが無い事を判定させる方法
Visual Basic(VBA)
-
14
Accessフォームに行番号を自動的に付与するには
Access(アクセス)
-
15
Access サブフォームでの選択行の取得
その他(データベース)
-
16
access2000:フォームで入力した内容を新規レコードにコピー
その他(データベース)
-
17
テキストボックスにクエリ結果を表示させたい
その他(データベース)
-
18
ACCESS フォームをそのまま印刷について
その他(データベース)
-
19
ACCESS 重複データを1つだけ表示したい(初心者です)
Access(アクセス)
-
20
Accessで、フォームからフォームへ値を引き継ぐやり方
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ACCESSのフォームで次のレコー...
-
差込印刷で顧客別に複数行のデ...
-
ラベルをクリックしてレコード...
-
ファイルメーカーで最大シリア...
-
ADOで現在のレコードの次のレコ...
-
日付の加算・減算ってできますか?
-
ACCESSで空白行を追加
-
KeySQLの代替ソフトありませんか
-
PSQLで-- More --を表示しない方法
-
ファイルメーカー8.0繰り返しフ...
-
FileMakerで全レコードを対象外...
-
「ファイルメーカー」で宛先の...
-
Accessで最終レコードの削除に...
-
アクセスのレポートを印刷する...
-
アクセスで入力したデータの順...
-
「#エラー」の回避
-
ACCESSレポートの1ページだけ
-
accessレポートにwordの文...
-
accessのフィールドに10桁の数...
-
A1、A2、A3・・・とデータを増...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
差込印刷で顧客別に複数行のデ...
-
ACCESSのフォームで次のレコー...
-
ADOで現在のレコードの次のレコ...
-
Accessのレポートの集計に条件...
-
ACCESSのレコード操作で1つ前...
-
PSQLで-- More --を表示しない方法
-
accessのマクロで「一時変数設定」
-
日付の加算・減算ってできますか?
-
access レポートで罫線...
-
ACCESSでオフセットを求める方法
-
ホスト汎用機でのNDBアクセス方法
-
Accessで最終レコードの削除に...
-
ファイルメーカーで最大シリア...
-
FileMakerで特定のレコードのみ...
-
ファイルメーカでの条件付き画...
-
「ファイルメーカー」で宛先の...
-
アクセスデータベースのUnicode...
-
180g重量版レコードとは? 180...
-
ファイルメーカーでレコード複...
-
ファイルメーカーで一括入力す...
おすすめ情報