ACCESS2000を使用しています。
コンボボックスを使用し、複数の列を表示しています。 連結列以外の列の項目を取得したい場合、どのようにすれば参照できるのでしょうか。
実際には、名前順に表示しているのですが、同姓同名の人がおり、後ろのデータを選択しても、最初のデータが取得されます。
なぜかというと、非連結にしてあり、イベントで取得した名前をキーにして再びファイルを読みに行っているからです。
なぜ、こんな作り方をしているかというと、連結にすると、最後の画面で 不良のデータがあるとそのままACCESSのほうで書き込んでしまうのがあるからです。 連結しても、項目のヌルデータの取得を認めないようにすれば 出来るらしいのですが、 いつも非連結で作っています。
よろしく御指導ください
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
>同姓同名の人がおり、後ろのデータを選択しても、最初のデータが取得されます
この「同姓同名」は、データには漢字(又はひらがな)が使用されていないでしょうか?
連結列に半角英数字以外のものを使用すると、コンボボックス&リストボックスは正常に動作しないことが多々あります
ARCさんがNo.3で記しているイメージように、コンボボックスのコントロールソースには、
ID(絶対に重複しない番号)を含め、なおかつIDは一番左の列にし、連結列にすることがよろしいです
(こうすると、IDの列幅を「0」にすることで、IDはコンボボックスに表示されなくなります)
No.3
- 回答日時:
ん~、どの列を見てもNullっていうのは、[コントロールソース]で指定したフィールドのデータが、[値集合ソース]
で指定したデータの中に見つからないときの症状です。
つまり、
受注明細テーブル
明細ID
商品ID
:
商品マスタテーブル
商品ID
商品名
:
ってなときに商品明細テーブルを表示するフォームを作り、そのフォーム中でコンボボックスを使って、商品名を表示する。
商品明細には商品IDが100番のデータが入力されているのに、商品マスタには商品IDが100番の商品が無い、という、異常なデータが入力されている
のような状況のときに、フォーム上で問題の商品ID=100になっているデータを表示してしまうと、コンボボックスの全ての列がNullになります。
恐らく、今回の場合は、フォーム側には半角空白1コのデータがあるけれども、コンボボックスの「値集合ソース」で指定されているデータの中には、それに対応するデータが無い、っていうような状況が起こっているのでは?
推測なんですが。
それでわ!
No.2
- 回答日時:
例えば String型の変数にNullを代入しようとしてエラーになってしまうってことですか?
その場合は、NZでNULLを打ち消してやるとうまく動作します。
dim strData As String
:
strData = NZ(Me.コンボ0.Column(0),"")
などとすると、データがNullの時は、""が代入されるようになります。
また、IsNull()関数を使って、IsNull(Me.コンボ0.Column(0))とすると、データがNullか否かを知ることが出来ます。
この回答への補足
またすぐに返答頂きありがとうございます
コンボボックスに4つの列を表示しています。
連結列がなぜかヌルデータになっているのです。 DBのテーブルでは1バイトのスペースが入っているのですが無視されているようです。 そして、連結列(1列目)がヌルだと、2列目以降何が入っていようと、すべて参照するときにヌルになっているのです。
理解に苦しんでいます。
No.1
- 回答日時:
Me.コンボ0.Column(0) 'コンボボックスの1列目を取り出す
Me.コンボ0.Column(1)'コンボボックスの2列目を取り出す
Me.コンボ0.Column(0, 1)'コンボボックスの2行,1列目を取り出す
こんな感じです。
ちなみに、連結にしておいて、不良データをBeroreUpdateイベントでチェックするようにしてもいいですよ。
もし不良だった場合、オブジェクト.Undo で、変更を元に戻せます。
この回答への補足
早速の回答ありがとうございました。
やってみたら、うまくいきました。
ですが、コンボボックスにヌルデータがあると、うまくいきません。
これは、ファイルをきれいにしておく必要があるのでしょうか。
イベントで逃げることは出来ないのでしょうか。
また、お願いできるでしょうか
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【VBA】データを入力後に,同一シート内に履歴として転記するVBAコードを教えていただきたいです。 3 2022/11/16 01:37
- Visual Basic(VBA) 複数ファイルのデータの統合について 12 2022/05/14 12:03
- Visual Basic(VBA) 列と行の名前(重複あり)が交差するセルに、データを入力したい 2 2022/06/25 22:42
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- Excel(エクセル) EXCELの外部データ取得ができない 1 2023/03/23 09:03
- Access(アクセス) Accessのクエリの結果を、既存のエクセルに追加したい 2 2022/07/31 22:44
- Visual Basic(VBA) 列と行の名前(重複あり)が交差するセルに、データを入力したい 3 2022/06/12 11:17
- C言語・C++・C# C言語初心者 ポインタについて、お助けください、、 2 2023/03/15 23:50
- Visual Basic(VBA) シートをコピーする下記記述でダイアログを用いた記述がわかりません?( A = Dir(ThisWor 4 2022/08/22 12:26
- その他(プログラミング・Web制作) Windowsのマクロプログラムで、こんなことできますか? 3 2022/06/28 14:30
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【VB.NET】Excelの最終行までの...
-
「Nullの使い方が不正です」の...
-
C# DataTableに最後に追加した...
-
【C#】textBoxの指定行のデータ...
-
非同期のプロセス間通信(パイプ...
-
batでレジストリキーから読み取...
-
java / jsp selectedについて
-
エクセルのマクロ コンボボッ...
-
Excel VBAでグラフの可変データ...
-
ADODBでの行番号の取得、もしく...
-
VBAコンボボックスの内容が反映...
-
VB2005 で NetworkStream で取...
-
ActiveReportのdetailをデータ...
-
COBOL数値転記の仕様
-
MSFlexGrid 行選択状態
-
エクセルのCSV読み込みについて
-
アクセスでウェブ上のデータを...
-
XMLでデータとして画像を指定す...
-
[リボンのキーボード ショート...
-
VBAでアクセスDBからデータの取...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
XMLでデータとして画像を指定す...
-
【C#】textBoxの指定行のデータ...
-
VBAでアクセスDBからデータの取...
-
Excel VBAでフォルダ内の全テキ...
-
【VB.NET】Excelの最終行までの...
-
C# DataTableに最後に追加した...
-
「Nullの使い方が不正です」の...
-
VBAコンボボックスの内容が反映...
-
COBOL数値転記の仕様
-
クリスタルレポートでレコード...
-
VB2010で、選択した系列を最前...
-
アクセスでウェブ上のデータを...
-
Excel VBAで1週間毎にカテゴリ...
-
非同期のプロセス間通信(パイプ...
-
エクセルのセル最終行取得
-
ActiveReportのdetailをデータ...
-
富士通(汎用機)のAIMについて
-
Excel VBAでグループ毎に集計す...
-
エクセルのCSV読み込みについて
-
AccessVBAでのExcelメモリ解放
おすすめ情報