Accessで入力フォームを作成しましたが、画面より左右に大きくなってしまいました。
そこで、入力をしていって、右の方のなったら、自動で右にスクロールするような便利な機能はないでしょうか?
(Excelのようなかんじです。)
もしありましたら、お教え願います。
よろしくお願いします。

A 回答 (2件)

SLIMさんと同じ事しか浮かばないです。


>それ以外で考えるとしても画面サイズが800×600だったら1024×768に
するぐらいですか・・・?
>いっそのことフォームを2つにしてみては?
1.フォームAとフォームBを作成
2.連番IDを付ける。
3.次頁ボタンに↓を記述

Dim lngID As Long 'フォーム連結ID
lngID = Me.ID.Value 'フォームのidフィールドの値を変数に格納 ID=連番名
DoCmd.Close acForm, "A_Form"
DoCmd.OpenForm "B_Form", acNormal, , "ID=" & lngID
'OpenFormの第4引数に抽出条件をセットします。

4.戻る場合も同じ
こんな感じで出来たと思います。
知っていらしゃったらゴメンナサイ(_ _(--;(_ _(--;
    • good
    • 0

適当なお話が聞けなかった場合にのみ参考にしてください。



ボタンを付けてマクロでページ移動させるのは駄目ですか?
左右の移動は 左位置を規準としてページ移動ができます。

ボタンを押させるのがいやならスクロールさせたい位置に透明な「なにか」を2つ置き フォーカス取得時のイベントで「左のなにかに触ったら右に、右のなにかに触ったら左に」とばすとか。

#「なにか」はお任せします縦方向にページ一杯におけて
#イベントの対象になれば何でもいいです。
#こういったフォームの場合私は初めから複数ページに
#分けてしまうので気にしたことがありませんでした(^^;
    • good
    • 0

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

関連するカテゴリからQ&Aを探す

このQ&Aと関連する良く見られている質問

Qaccess2000入力フォームの画面スクロール

amuro-kamuiと申します
度々となりますが皆様のお知恵をお借りしたくて質問します。
access2000にて入力フォームを作成しました。
入力項目が40位いあり画面を縦スクロールさせないと全項目入力しきれなくなってしました。
それで入力している途中で画面を下にスクロールさせようとしてうっかりマウスのスクロールボタンを触ると入力フォームが次のレコードのデータになってしまいます。
使い勝手が不便で困っています。
なんとかしてこれを防ぎたいと思っています。
教科書本やHELP等を探して見たのですが解決方法が見つかりません。
解決策かヒントでもよいのでご教授お願いいたします。

Aベストアンサー

FAQです。

QNo.472635、581797、884922、897277 を参照。

www.okweb.ne.jp/kotaeru.php3?q=472635
www.okweb.ne.jp/kotaeru.php3?q=581797
www.okweb.ne.jp/kotaeru.php3?q=884922
www.okweb.ne.jp/kotaeru.php3?q=897277

QMS Access フォームでの入力方法につい

Microsoft Accessでフォームでの入力方法について教えてください。
本の管理データベースを作成しております。
書籍の情報をデータベースに入力するフォームを作っておりますが、テーブルの項目を入力する際の方法を、直接入力とリストから選択する方法を両方できるようにはできないでしょうか。
例えば、「発行書店」を入力するときに、テキストボックスに直接入力してもOK、別テーブルに書店の一覧を作っておいて、そのリストをコンボリストに表示させ、クリック選択するとテキストボックスに入るような形でもOKのようにしたいのです。

コンボボックスでリストから選ぶだけでなく、ボックス内に直接入力してもテーブルに反映できるようにできれば話が早いのですが、デザインビューのプロパティで入力チェックを「いいえ」にしてもエラーが出て設定できないので・・・。
無知で申し訳ありませんが、どうかご教示ください。

Aベストアンサー

質問の場合は以下の方法をとります。

http://support.microsoft.com/kb/197526

しかし、これを質問の場合に合わせて書き換えて
ください、というのは大変かも知れません。
上記の、NotInListとはコンボボックスの
プロパティの「リスト外入力時」のイベントに設定
します。

説明を簡単にするためにこちらで利用方法を
設定します。


(1) テーブルの設定
T図書:
図書ID (テキスト型) (主キー)
図書名(テキスト型)
発行書店 (テキスト型)

T発行書店:
発行書店ID(テキスト型) (主キー)
発行書店(テキスト型)


(2) フォームの作成
フォームの「新規作成」を選択し、
「基になるテーブルまたはクエリの選択」で「T図書」を
選択し、「オートフォーム表形式」を選択し、「OK]として
出来たフォームを適当な名前で保存します。


(3) フォームの改造
フォームをデザインビューで開き、「発行書店」の上で
右クリックして、コントロールの変更でコンボボックス
を選択します。


(4) コンボボックスの設定
コンボボックの上で右クリックからプロパティを開き、
「値集合ソース」に、以下を貼り付け
保存します。

SELECT T発行書店.発行書店ID, T発行書店.発行書店
FROM T発行書店;

また、列数、列幅を以下に設定します。
列数 2
列幅 0cm,2cm


次に、「リスト外入力時」の右端をクリックして「ビルダの選択」
を表示し、「コードビルダ」を選択して「OK]とします。
表示された、コード表を以下のようにに設定します。


Private Sub 発行書店_NotInList(NewData As String, Response As Integer)
Dim db As Database
Dim rs As Recordset
Dim Msg As String
Dim NewID As String

On Error GoTo ER_R

If NewData = "" Then Exit Sub
Msg = "'" & NewData & "' は登録されていません。" & vbCr & vbCr
Msg = Msg & "新規に登録しますか?"

If MsgBox(Msg, vbQuestion + vbYesNo) = vbNo Then
Response = acDataErrContinue
MsgBox "もう一度登録し直してください"

Else
Set db = CurrentDb
Set rs = db.OpenRecordset("T発行書店", dbOpenDynaset)

Msg = "新しい発行書店IDを入力してください。" & vbCr & "発行書店ID."
NewID = InputBox(Msg)
rs.FindFirst BuildCriteria("発行書店ID", dbText, NewID)
' If the NewID already exists, ask for another new unique
' CustomerID
Do Until rs.NoMatch
NewID = InputBox("発行書店ID " & NewID & " はすでに存在します." & _
vbCr & vbCr & Msg, NewID & " 既存")
rs.FindFirst BuildCriteria("発行書店ID", dbText, NewID)
Loop
' 新しいレコードの設定
rs.AddNew
' 発行書店IDの登録
rs![発行書店ID] = NewID
' 発行書店の名前の登録
rs![発行書店] = NewData
' 登録したレコードの保存
rs.Update

Response = acDataErrAdded

End If

Exit Sub
ER_R:
MsgBox Err.Description
Response = acDataErrContinue

End Sub


以上です。基本的なNotInListプロパティの使い方です。

質問の場合は以下の方法をとります。

http://support.microsoft.com/kb/197526

しかし、これを質問の場合に合わせて書き換えて
ください、というのは大変かも知れません。
上記の、NotInListとはコンボボックスの
プロパティの「リスト外入力時」のイベントに設定
します。

説明を簡単にするためにこちらで利用方法を
設定します。


(1) テーブルの設定
T図書:
図書ID (テキスト型) (主キー)
図書名(テキスト型)
発行書店 (テキスト型)

T発行書店:
発行書店ID(テキスト型) (主キー)
発行書店(テキスト...続きを読む

QAccess 入力フォームの作成

アクセス2007
2つのテーブルがあります。

tbl顧客
顧客番号
顧客名
住所
電話

tbl販売
販売番号(オートナンバー)
日付
顧客番号
商品
金額

tbl販売で作成した入力フォームで、
約5日分のデータを、レシートを見て一気に入れます。
次のデータを入力します。

日付|顧客番号|商品|金額

3/8|123|石鹸|200
3/8|122|洗剤|100
3/8|126|食器|700
3/8|127|鉛筆|600
3/8|125|石鹸|200
-------------------
3/9|123|食器|200
3/9|132|洗剤|900
3/9|126|食器|300
3/9|127|洗剤|600
3/9|128|石鹸|500

同じ日付を毎回入力しています。入力に手間がかかります。
例えば、見出にテキストボックスを作成して、その日付が自動的に入力できるような方法を知りたいです。

3/8と入力
↓自動的に日付が入る。
3/8|123|石鹸|200
3/8|122|洗剤|100
3/8|126|食器|700

また、顧客番号だけですと入力ミスが起きやすいので、確認の意味で顧客名が表示されるような方法はありますか?

3/8|123|太郎|石鹸|200
3/8|122|花子|洗剤|100
3/8|126|次郎|食器|700
のように。

よろしくお願い致します。

アクセス2007
2つのテーブルがあります。

tbl顧客
顧客番号
顧客名
住所
電話

tbl販売
販売番号(オートナンバー)
日付
顧客番号
商品
金額

tbl販売で作成した入力フォームで、
約5日分のデータを、レシートを見て一気に入れます。
次のデータを入力します。

日付|顧客番号|商品|金額

3/8|123|石鹸|200
3/8|122|洗剤|100
3/8|126|食器|700
3/8|127|鉛筆|600
3/8|125|石鹸|200
-------------------
3/9|123|食器|200
3/9|132|洗剤|900
3/9|126|食器|300
3/9|127|洗剤|600
3/9...続きを読む

Aベストアンサー

初期値をクエリで求めては?

以下のクエリ(名前は"ABC")を作ります。
SELCT IIf(IsNull(A.X),Date(),B.日付) AS XYZ
FROM [SELECT Max(T.販売番号) AS X FROM tbl販売 AS T]. AS A
LEFT JOIN tbl販売 AS B ON A.X=B.販売番号

次にフォームの日付の規定値に=DLookup("XYZ","ABC")と
記述します。これで、最後に入力したデータの日付が、
次の新規登録レコードの規定値になります。

>顧客名が表示されるような方法はありますか?
テーブルの項目以外を使うと更新不可能になります。
顧客番号をコンボボックスにしたらどうですか?
表示を2列にすると、番号と名前が対になって
見えるので入力し易くなると思います。
値集合ソースに"SELECT 顧客番号,顧客名 FROM tbl顧客
ORDER BY 顧客番号"と記入(引用符は転記しない)し、
列数を2、列幅を1cm;2cmにします。これで2列見えます。
列幅は適宜調整します。

これがイヤならヘッダかフッタに非連結テキストを置き、
カレントが変化する度に動的に内容を書き換えるコードを
置く(あるいは=DLookupを使う。条件指定が面倒)ように
しますが、カレントを移る度にクエリが実行されるので
効率の悪い方法です。

初期値をクエリで求めては?

以下のクエリ(名前は"ABC")を作ります。
SELCT IIf(IsNull(A.X),Date(),B.日付) AS XYZ
FROM [SELECT Max(T.販売番号) AS X FROM tbl販売 AS T]. AS A
LEFT JOIN tbl販売 AS B ON A.X=B.販売番号

次にフォームの日付の規定値に=DLookup("XYZ","ABC")と
記述します。これで、最後に入力したデータの日付が、
次の新規登録レコードの規定値になります。

>顧客名が表示されるような方法はありますか?
テーブルの項目以外を使うと更新不可能になります。
顧客番号をコンボボックスにし...続きを読む

Q主キーが二つないと、フォーム入力が思ったようにできないのか?

こんばんは。
従業員の出入りが激しいため、従業員の入社時の「志望動機」と
「退社理由」をデータベースで残して 分析しようという試みのため、
入力用にフォームを作ったけどうまくいきません。

(1)社員基本情報テーブル(主キーは、社員コード。フィールドは、社員コード、氏名、入社日、退社日、部署)
(2)入退社テーブルを新規に作成(主キーは社員コード。フィールドは志望動機、退社理由)

(1)、(2)を社員コードで結合してクエリを作成しました。
このクエリを元に、フォームを作成しました。

こちらで作成したいフォームのイメージは
社員コードを入れると、氏名と部署、入社日、退社日が自動的に参照。
あとは志望動機と退社理由を入れる。

ところが、実際には
社員コードを入れても自動的に参照は行われず、ただ、一度フォームを閉じてもう一度開けるとそこには上記データが参照されてきます。

ちなみに、(2)で主キーを社員コードと志望動機の二つにすると
うまくいったのです。
うまくいった理由も分からないですし、うまくいかなかった理由も分かりません。

これは何がどう悪くてこのようになっているのでしょうか?

こんばんは。
従業員の出入りが激しいため、従業員の入社時の「志望動機」と
「退社理由」をデータベースで残して 分析しようという試みのため、
入力用にフォームを作ったけどうまくいきません。

(1)社員基本情報テーブル(主キーは、社員コード。フィールドは、社員コード、氏名、入社日、退社日、部署)
(2)入退社テーブルを新規に作成(主キーは社員コード。フィールドは志望動機、退社理由)

(1)、(2)を社員コードで結合してクエリを作成しました。
このクエリを元に、フォームを作成しました。
...続きを読む

Aベストアンサー

>今回の件と参照結合性の話は関係ないと思います。
完全一致の1対1でない場合でも参照整合性が設定できることは確認しました

参照整合性とは関係ないようですが
ご質問の現象は完全一致でない1対1結合のテーブルだから起こっていもるものです
完全一致でない1対1結合(こういう関係を派生関係といいます)のテーブルでの入力は
前の回答に書いたように、メインサブ形式のフォームでやるのが一般的手法です

Qパスワード入力の際、*で表示されるようにするには、、、

Access2000で作成した、とあるログイン用のフォームに、
ID入力用テキスト、パスワード入力用テキストが
ございます。
現段階で、パスワードを入力しても「*****」と
表示されない状態、保護されていない状態ですので、
これを「*****」と表示されるように直したいと
思っています。
どなたか、よろしければ、ご教授ください。。。
お願い申し上げます。

Aベストアンサー

パスワード入力用テキストのプロパティを開きデータの定型入力のフィールド右のボタンを押すと定型入力ウィザードが開きその中にあるPasswordを選択すれば*表示になります。
単一パスだったらそのしたの入力規則に記述しその下のメッセージフィールドにエラー時表示するメッセージを入力すればOKです。ログイン部の記述が出来ていれば大丈夫ですね。


人気Q&Aランキング

おすすめ情報