• ベストアンサー

AccessVBAの処理の流れについて。

ExcelファイルをAccessのテーブルにインポートしたあとに、 ABCテーブルのBBBフィールドの中にXYZという、 値が入った時は、通常の処理と違う流れにしたいのですが、 分岐の仕方が分かりません。 BBBフィールドの中にZZZやFEZといった値と一緒にXYZが入って いた時は、XYZの処理を通って問題なく望む結果が得られるのですが、 XYZのみだと出来ないため、最初から分岐させてXYZの処理に飛ばしたい と考えています。 どのようにしたら良いのかご教示下さい。 宜しくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • ape5
  • ベストアンサー率57% (85/148)
回答No.1

もっと具体的に書かないと回答する側は躊躇してしまいます。 BBBフィールドに実際にどういった感じでデータがはいるのか。ZZZやFEZと一緒に入る時があるというのでどんな感じなのかわからないです。 また、現在の処理をしているコードがどんな感じになっているのか。テーブルからどういった感じでデータを抽出しているのか、Recordsetで一件一件ループでまわしているのかとか、大まかなソースがあると答えやすいかもしれません。

n_c63amg
質問者

お礼

有り難う御座いました。 気をつけて、質問するようにします。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • shellスクリプトで引数をhashとして展開させ

    お世話になります。 シェルスクリプトで引数をハッシュの文字列として展開できないかな・・と思考錯誤しています。 . ./test.sh abc #!/bin/bash declare -A abc # -Aでハッシュ宣言 abc["0"]="0" abc["1"]="1" abc["2"]="2" abc["3"]="3" abc["4"]="4" abc["5"]="5" abc["6"]="6" abc["7"]="7" abc["8"]="8" abc["9"]="9" abc["10"]="10" declare -A xyz # -Aでハッシュ宣言 xyz["0"]="0" xyz["1"]="1" xyz["2"]="2" xyz["3"]="3" xyz["4"]="4" xyz["5"]="5" xyz["6"]="6" xyz["7"]="7" xyz["8"]="8" xyz["9"]="9" xyz["10"]="10" declare -A zzz # -Aでハッシュ宣言 zzz["0"]="0" zzz["1"]="1" zzz["2"]="2" zzz["3"]="3" zzz["4"]="4" zzz["5"]="5" zzz["6"]="6" zzz["7"]="7" zzz["8"]="8" zzz["9"]="9" zzz["10"]="10" if [ "$1" = "abc" ]; then echo "$1:${abc[$(( ${RANDOM} * 11 / 32768 ))]}" elif [ "$1" = "xyz" ]; then echo "$1:${xyz[$(( ${RANDOM} * 11 / 32768 ))]}" else echo "$1:${zzz[$(( ${RANDOM} * 11 / 32768 ))]}" fi もしハッシュが増える場合、elifの部分を沢山書いていくのではなく、 下記のような形にすっきりさせたいと思っているのですが、$1の値をハッシュとして展開させるやり方がわかりません。 if [ "$1" ]; then #ここの部分で$1をハッシュとして展開させる為の記述方法がわかりません。 #下記のいずれも「: 誤った代入です」となってしまいます echo "$1:${$${1}[$(( ${RANDOM} * 11 / 32768 ))]}" echo "$1:${${1}[$(( ${RANDOM} * 11 / 32768 ))]}" echo "$1:${${1[$(( ${RANDOM} * 11 / 32768 ))]}}" echo "$1:${$1[$(( ${RANDOM} * 11 / 32768 ))]}" else echo "$1:${zzz[$(( ${RANDOM} * 11 / 32768 ))]}" fi どなた様か、ご教授願えませんでしょうか。よろしくお願いしたします。

  • AccessVBA でテーブルをインポートする方法

    AccessVBAでテーブルをインポートする方法 aaa.mdbの中のあるテーブルを、bbb.mdbにインポートする方法を教えてください。 ボタンで実行させたいのでVBAを使った方法をお願いします。

  • [Access2000]アクションクエリでお尋ねします。

    テーブル名は Table フィールド名は Filed で Filed 内には abc_uvw、def_xyz のように "_" で仕切られた文字列がはいっています。 そこで、次のようなクエリで "_"より後ろの値でFeildを書き換えようと思うのですが、 もともとのFieldの値がNULLである場合、その部分だけエラーになります。それ以外の値のはいっている部分に関してはエラーにならずに処理されますが、このエラーを回避する方法はないのでしょうか? UPDATE Table SET Field = Mid([Field],InStr(1,[Field],"_")+1,Len([Field])-InStr(1,[Field],"_"));

  • テーブルへのデータ投入について。

    ABCテーブルにAAからAZまでのフィールドがあります。 ここに、XYZテーブルのデータを入れたいのですが、 XYZテーブルには、AA・AE・AG・AH・AMの5つのフィールドしかありません。 この場合、 insert into ABCテーブル (AA,AE,AG,AH,AM) select XYZテーブル.AA,XYZテーブル.AE,XYZテーブル.AG, XYZテーブル.AH,XYZテーブル.AM from XYZテーブル; としたら、エラーがおきますか?

  • ADOでNullフィールドの抽出

    VB6.0+ADO2.7で、mdbファイルを扱っています。 .filterプロパティを使ってabcフィールドの値がnullまたは空のテーブルを抽出したく recordset.filter="abc= null or abc=''" としました。この場合は問題ないのですが、更にdefフィールドの条件を追加し recordset.filter="(abc= null or abc='') AND def= 'xyz'" としたところ 「実行時エラー3001 引数が間違った型、許容範囲外、または競合しています。」 というエラーが発生してしまいます。 また、 recordset.filter="abc= null AND def= 'xyz'" 或いは recordset.filter="abc='' AND def= 'xyz'" では問題ありません。 何が悪いのでしょうか? よろしくお願いします。

  • グループ化+最大値

    お世話になっております。GomiYasikiです。 以下のような場合で、フィールドAが同じ中のフィールドBが最大値のものを抽出する場合はどのようにすればよいのでしょうか? お手数ですが、宜しくお願い致します。 テーブル名:テーブルA フィールドA,フィールドB,フィールドC AAAAA,1,ABC AAAAA,2,XYZ BBBBB,1,ABC BBBBB,2,DEF CCCCC,1,AAA ↓結果 AAAAA,2,XYZ BBBBB,2,DEF CCCCC,1,AAA

  • 変数にオフセットが付いている時の計算について

    変数:ABC(負号無し1byte)は「-10」のオフセットがついてます。 (0の時-10という値を表す) 変数:XYZ(負号無し1byte)には「-50」のオフセットがついてます。 (0の時-50という値を表す) この2つの変数を使って、XYZ = ABCの代入処理をする場合ですが、 ABC=100とした時(物理値は90)XYZにこのまま代入すると 物理値は50になってしまうので、XYZのオフセット分に合わせこむ為、 ABCの変数に「40」を加算し「140」にしてから代入すれば良いのでしょうか? 又、ABC = XYZ をやる場合は逆に-40してから代入すればOKでしょうか? ご存知の方おりましたら、教えてくださいお願いします。

  • AccessVBAでサポートお願いします。

    こんばんわ。AccessVBA初心者です。 下記のような処理を作りたいのですがわかりません・・。 もしお分かりになる方がいらっしゃいましたらサポートをお願い致します。 「テーブルA」「テーブルB」があり、それぞれのテーブルに連結した「フォームA」「フォームB」(両方とも帳票フォーム)があります。 テーブルには幾つかのフィールドがあり、その中にチェックボックスに連結したフィールドがあります。 まず、「フォームA」を開き、任意のレコードのチェックボックスにチェックを入れ(複数選択あり)、あるコマンドボタンをクリックするとチェックの入ったレコードのみを「テーブルA」から「テーブルB」へ移動させる処理を作成したいのですがどうもうまく作れません。 「テーブルB」へ移動後は「テーブルA」から該当のレコードが削除されている必要があります。 また、テーブルBには随時データが蓄積されていく必要があります。 どなたかお分かりになる方がいらっしゃいましたらご教授願います。 その際、VBAのソースを記述頂けますと助かります。 どうぞ宜しくお願い致します。

  • 転送メールの返信時の設定

    2台ケータイを使用しているんですが どちらのケータイから返信しても、同じアドレスからの返信として 送信する事は出来ないでしょうか? イメージとしては以下様な感じです。 差出人(abc@xxx.com)が(xyz@xxx.zzz)へメール送信 ↓ (xyz@xxx.zzz)から (abc@ezweb.ne.jp)と(abc@docomo.ne.jp)へ自動転送 ↓ (abc@ezweb.ne.jp)もしくは(abc@docomo.ne.jp)から 差出人(abc@xxx.com)へ(xyz@xxx.zzz)からの返信として送信  後、自動転送時に(abc@ezweb.ne.jp)と(abc@docomo.ne.jp)の from欄に差出人(abc@xxx.com)のアドレスが表示されてほしいです。 ケータイの電話帳と連動させる為です。 よろしくお願いいたします。

    • 締切済み
    • au
  • ACCESS2000での大量データ処理

    CSVファイルの情報をACCESS2000にインポートして集計処理をしたいと考えてます。 CSVファイルの構成は、20フィールド(全て文字属性)で1レコード、1400レコードで1件となっております。(この仕様を変更する事は出来ないのが条件です。) 言い直せば、1名分の情報は1400レコードあるとなります。但し、集計に使用する情報はその内の400レコードであり、1000レコードは不要です。 処理する人数は3万件ぐらいあります。 (1)1400レコード×3万件の情報をインポート出来るのでしょうか?    テーブル制限の1Gを超えないのでしょうか(テーブルサイズの参照方法も?) (2)CSVをインポートする際に、必要なフィールド400だけインポートできるVBAはあるのでしょうか?  必要不要の判別フィールドはあります。 (3)インポート後、ACCESSで400項目を1レコードにする事はできないか?255以上のフィールドのテールを処理する方法はあるのでしょうか? (4)このような大量集計を可能にするには、みなさんは何を使用しているのでしょうか? よろしくお願いいたします。