アクセス-行が10文字に制限されているテキストボックス?
こんにちはコミュニティ、
ユーザーが同じボックスに複数のID(10桁)を入力できるようにするコントロールテキストボックスを作成しようとしています.
私たちの目標は、tableビューの同じフィールドにすべてのIDを含めることですが、ユーザーが1行に複数のIDを入力できないようにする必要があります.
アクセス中のプロパティシートを介して文字の総数を制限することは可能ですが、行ごとに許可される文字数を制限する方法が見つかりません.
誰かが私にこれを手に入れることができますか?よろしくお願いします.
具体的には:
テキストボックスで許可する必要があります:
1234567890xxxx<-行あたり最大10桁.Enterキーを押すと、次の行に移動します.
1234567890xxxx
1234567890xxxx
ありがとう!
返信リスト(回答:9)
これがあなたのためにどのように機能すると思われるか説明できますか?次のようなものが表示されることを期待していますか:
RecordID ID
1 0123456789
1234567890
2345678901
2 9876543210
8765432109
7654321098
もしそうなら、なぜこれが必要なのか説明できますか?
考えられる解決策は、ユーザーに|のような区切り文字を使用してIDを入力させることです.次に、その文字を改行に置き換えます.
応答7# ->にスキップ6 #cokistoデータをホモロゲーションしてレポートを作成する方法です.また、ユーザーが間違いを犯したり、間違った区切り文字を追加したり、別の区切り記号を使用したりする傾向があることに気付いた経験に基づいて、レコードを簡単に検索できます.テキストボックスに10文字ごとに区切り文字を追加する方法がある場合は、このトリックも実行できます.ただし、複数の行がある方が見栄えがよい場合があります
応答6# ->にスキップ5 #Scottgeまず、なぜこれが必要なのかまだわかりません.レポートを私が投稿した例のように見せたい場合は、子tableを使用する必要があります.次のようなtableが必要です:
tblSelIDs
SelIDPK(PK自動番号)
ParentID(FK)
SelID
次に、ユーザーはサブフォームの行ごとに1つのIDを入力します.次に、親レコードに関連付けられたIDごとに行を表示するクエリを作成できます.レポートでは、重複の非表示機能を使用して、私が示したようにレポートを表示できます.
ループ内でMID関数を使用して、10文字を取得し、改行文字を追加できます.このようなもの:
i= 1の場合Len(IDlist)ステップ10
strList= strLIst&Mid(Me.List、i、10)&Chr(10)
次は
応答5# ->にスキップ4 #cokistoありがとうスコット、 フォームはさらに多くの入力テキストボックスとコンボボックスで構成されているため、子tableが役立つとは思いません.
フォームのテキストボックスには255文字の制限があり、ユーザーはテキストボックスの制限に達する可能性のあるケースを入力できます.tableがあると、これらのシナリオにフォームに大量のスペースが割り当てられます.
ボックス内のすべての文字をXXXXXXXXXX-XXXXXXXXXX-...に沿ってフォーマットする方法があるかどうか、または行を10桁に制限できる場合は、それらのいずれかが役立ちます.
>
応答4# ->にスキップ1 #GroverPPMFJI:
IDに親tableと子tableを持つ標準のリレーショナルデータベース設計を使用しない唯一の理由は、そうすることが可能であるということです.リレーショナルデータベースApplicationの設計に対する標準的なアプローチは、リレーショナルデータベースApplicationを設計するための最も効果的で安全かつ信頼性の高い方法であるために生まれました.
私が最近よく使っている例えは、川のカヌーに関するものです.コース修正のためにパドルを使用して、現在の流れで下流に浮かぶことができます.または、流れに逆らって狂ったように漕いで上流に移動することもできます.すべてのIDをtableの1つのフィールドに配置し、それらを「何らかの方法で」制御することは、そのパドルを狂ったように使用して、現在に逆らって上流にプッシュすることです.大変な作業ですが、まあ、それは可能です.
応答4# ->にスキップ2 #Scottge 1さらに、ここでは子tableが道だと思います.サブフォームを作成できます.これにより、既存のテキストボックスコントロールよりも多くのスペースを占有することはありません.IDの数が255文字の制限を超える可能性がある場合は、子tableとサブフォームを使用する理由がさらにあります.
申し訳ありませんが、これまでに説明したことはすべて、子tableを求めています.
応答4# ->にスキップ3 #DanielP 1これは、私が正しく理解していれば、メインフォームにサブフォームを持つ親子tableを作成して、複数のエントリを作成できるようにする正確なシナリオです. tableのフィールドサイズを制御します.
レポートの場合、サブレポートのアイデアが気に入らない場合は、値を単純に連結できますが、データ入力と関連tableのクエリが解決策です.
「アクセス中のプロパティシートを介して文字の総数を制限することは可能ですが、行ごとに許可される文字数を制限する方法が見つかりません.」
しかし、あなたの例に基づいて、それはまさにあなたが実装すべきものです. table定義でフィールドサイズを設定します.
他のオプションは、VBAとおそらく変更イベントのコントロールを使用することです.