![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
ワゴンと計測器がひもついたデータのテーブルがあります。
A***、B***がひもついている計測器の種別のイメージです。
ワゴン1
A001
A002
A003
B001
B002
ここで、
1番の機械だったらA001,B001
2番の機械だったらA001,A002,B001,B002
という風に機械のタイプで使用する計測器のリストを抽出したいと思っています。
データテーブルの構造を変更することは難しいので、支障のない列(PGM)にてフラグにて抽出できないものかと考えました。
PGMの列には24ビット分のデーたが入れられます。
そこで下記の様にPGMの列にビット情報を入れます。(とりあえず8ビットの情報)
ワゴン1 PGM
A001 11001011
A002 01001011
A003 00001011
B001 11001011
B002 01001011
1番目の機械だったら、8ビット目が"1"を抽出。2番目の機械だったら7ビット目が"1"を抽出
という風にすればよいかと思っています。
このフラグコントロールをVBAでどの様にしたら良いかを教えていただけませんでしょうか。
あるいは、もっと簡単に対応可能な方法があればとも思っています。
尚、VBA全くの初心者で、ホームページやいろんなサイトにて、
やっと下記のデータ抽出までたどり着けた次第です。
コードに関しては、基本部分を全記述でお願いしたく。
ORACLEのデータベースにMEISAIというテーブルがあり、
ここからEXCELのセルA21に入力された文字列を参照します。
IDがABC
CODEがCOMPANY
PGMがセルA21の文字列
てデータ抽出する記述。
WG1 = Range("A21")
Set rs = OraDatabase.CreateDynaset("select * from MEISAI where ID = 'ABC' AND CODE = 'COMPANY' AND PGM = '" & WG1 & "'", 0&)
OFFICE2003 ORACLE V9.0です
No.2ベストアンサー
- 回答日時:
何度か読み直してみました。
>1番目の機械だったら、8ビット目が"1"を抽出。2番目の機械だったら7ビット目が"1"を抽出という風にすればよいかと思っています。
ビット演算というのは、単に、AND OR での計算のことですね。フラグコントロールではなく、ビットコントロールというなら、8bitは、1byteですから、Byte型にすればよいのですが、その組み合わせは、255までです。文字型(1byte)としては、&H01~&HFFで、その組み合わせで、chr 関数で出力すればよいわけです。24bitなら、1byteの文字型3つということだけのことですから、難しくbit出力とか考える必要もないと思います。
しかし、私としては、質問には何か話が食い違っているような気がします。
単に、ビットではなく、24のフラグだけのような気がしてなりません。
もし、そうなら、かなり話が違うような気がします。
>A001 11001011
これだけなら、単にLong型か文字列型で数字を確保すればよいだけです。
この数字を得たいなら、それぞれの桁に代入すれば済みます。どちらかと言うと、文字型のほうがよさそうです。
レスが思ったほどつかないのは、質問の意図するところがはっきりしていないからだと思います。
入り口の話はされていても、出口まで出てくる話(要求しているOracleに出力するデータの内容)はされていないと思うのです。話のままの24bitなら、8bit×3 で、文字3つということになってしまいます。
ビットは、Byteならとかもく、VBAでは聞いたことがありません。
>コードに関しては、基本部分を全記述でお願いしたく。
何をどうするのか、良く分からないところです。
質問が分かりやすければ、だれでも、回答はできると思います。
例えば、リストで変換表が作ってあって、それをVLOOKUP関数で参照するとか。
回答ありがとうございます。わかりづらい質問だったでしょうか?自分では知りたい内容を詳しく説明したつもりだったのですが、大変お手間をとらせたみたいで申し訳ありませんでした。
尚、知りたかった内容に関しては、アドバイスにて解決しました。
「ビットではなく、24のフラグだけのような気がしてなりません」
→
0か1の情報で判断できればと思ったので、ビットという表現にしたことが混乱させてしまったようです。言われる通り、24のフラグで判断です。
「この数字を得たいなら、それぞれの桁に代入すれば済みます。どちらかと言うと、文字型のほうがよさそうです」
→
VBAで変数の宣言は特にしていません。
VBA自体が初心者なので、いつもホームページから参考になる案件をひっぱってきて、条件等を変更している次第です。
解決した内容は次の通りです。
1番目の機械であれば、A21セルに1___%
2番目の機械であれば、A21セルに_1__%
3番目の機械であれば、A21セルに__1_%
…
という情報を入力する様にします。
上記の _ は半角アンダーバーです。
普通は*で表示されるものの内容ですね。
Set rs = OraDatabase.CreateDynaset("select * from MEISAI where ID = 'ABC' AND CODE = 'COMPANY' AND PGM = '" & WG1 & "'", 0&)
の内容は、
PGM = '" & WG1 & "'
を
PGM like '" & WG1 & "'
とすることで抽出出来る様になりました。
以上2点が知りたかった内容になります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Visual Basic(VBA) 複数シートの複数列に入力されているデータを重複なしで抽出するVBAを作りたいです。 9 2022/06/17 10:33
- その他(データベース) Accessのクエリで1フィールドの抽出条件設定をNullでなく全角半角含む空白のみの文字列でない文 1 2023/04/24 15:20
- Excel(エクセル) Excelマクロ 差分抽出の方法が知りたいです。 2 2023/03/07 13:25
- Visual Basic(VBA) Sheet2の日付をキーにオートフィルターで2023年1月のデータを抽出し、Sheet3へ書き出すた 2 2023/03/06 23:57
- Oracle SQLについて教えて下さい。 主キーを持ったカラムを主キーの機能を持たせたまま カンマ区切りで文字列 1 2023/03/27 22:47
- Excel(エクセル) Excelの関数でこんな処理ができますか 1 2023/02/08 13:46
- Oracle 質問です。 下記のテーブルとデータがあり、 取得想定結果のように出力したいです。 下記のsqlだと0 2 2023/05/23 19:10
- PHP 配列の値の更新方法について 1 2022/08/05 09:49
- Excel(エクセル) Excelマクロの差分抽出のコードを教えていただきたいです。 2 2023/03/14 11:40
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
<SQL>条件付きで最小値レコード...
-
ACCESSのクエリで同じSQL文だが...
-
エクセル関数 文字(ハイフン...
-
Excelの横軸の際の抽出について
-
ACCESSの集計クエリで3件ある...
-
Excel関数:別テーブルから条件...
-
エクセル Offset関数 飛び行の...
-
(Access)コンボックスの値を...
-
MS-DOSコマンドプロンプトを途...
-
エクセルでのWEB取り込みに...
-
アクセスのクエリの抽出条件に...
-
Excelで別のExcelファイルから...
-
GROUP BY 句を使う時のWHERE と...
-
SQLplusでデータ抽出時の行番号...
-
抽出したデータを修正して元の...
-
VBAでビット情報にてデータ抽出
-
〜のような結果を出すためのSQL...
-
初心者Mysqlの関数のsubstring...
-
ACCESSで大量の更新を行うと「...
-
ファイル書込みで一行もしくは...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクスプローラーで「2つの条件...
-
抽出したデータを修正して元の...
-
ACCESSの集計クエリで3件ある...
-
MS-DOSコマンドプロンプトを途...
-
ACCESSのクエリで同じSQL文だが...
-
アクセス クエリ-で空白以外の...
-
エクセル関数 文字(ハイフン...
-
空白文字とスペースの検索
-
<SQL>条件付きで最小値レコード...
-
SQLServerからエクセルにデータ...
-
VBA CSVファイルを文字列に
-
エクセルデータの末尾の改行を...
-
ADO接続からのACCESSデータシー...
-
Excel VBA:セルを新旧1つずつ...
-
商品テーブルからカテゴリ別の...
-
エクセル Offset関数 飛び行の...
-
エクセルで特定データの抽出を...
-
アクセスでのデータの引き抜き(...
-
VBAでEXCELファイルからデータ...
-
Excel2007:Microsoft quaryで外...
おすすめ情報