Access2002を使用しております。
「結果テーブル」というテーブルの<支店名>というフィールドの空白のレコードをすべて"空白"と言う文字に置換する作業を行っています。
現在は一度「結果テーブル」を開いた後に<支店名>フィールドを全部指定してから置換作業を行っているのですが、これをマクロを使用して自動処理にさせたいのですが、どうもうまくできません。どのようにすれば自動でできますか?
VBAでもかまいません。
よろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

以下のクエリーを実行してはどうでしょうか。



UPDATE 結果テーブル SET 支店名 = '空白' WHERE 支店名 is null
    • good
    • 0
この回答へのお礼

ありがとうございますおかげで様で目的の物ができました。
またよろしくお願いします。

お礼日時:2002/03/12 15:17

御疲れ様です



文字の置換と言うことだけ考えれば、更新クエリを使用すればできます。
下記SQLを実行すれば、<支店名>がNULLだったら”空白”にします。

UPDATE 結果テーブル SET 結果テーブル.支店名 = "空白"
WHERE (((結果テーブル.支店名) Is Null));


>これをマクロを使用して自動処理にさせたいのですが、
自動処理にするタイミングが分かりません。

コマンドボタンとか、で実行するのであれば、上記SQLを実行すればできます
Private Sub コマンドボタン_Click()
Dim stSQL As String

stSQL = "UPDATE 結果テーブル SET 結果テーブル.支店名 = '空白' " & _
"WHERE (((結果テーブル.支店名) Is Null));"
Currentdb.Execute stSQL

End Sub

参考になれば...
    • good
    • 0
この回答へのお礼

ありがとうございます。
いまいち更新クエリがわかってなかったので勉強したいと思います
また何か有りましたらよろしくお願いします。

お礼日時:2002/03/12 15:20

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

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

Q極限を求めよでの2通りの変数の置換について。

lim[x→π/2]cosx/(2x-π)
パイ⇔π
と「この極限を求めよ。

」にて、等式を挟んでx=π/2より、t=0と置きt→0としたいからx=(π/2)+tでtについて解きt=x-(π/2)、x=π/2よりt=0と出来、t=x-(π/2)と置く。・・(1)

t=0と置きt→0としたいからx+t=(π/2)をtについて解きt=(π/2)-x、x=(π/2)よりt=0と出来、t=(π/2)-xと置く。・・(2)
(1)、(2)の二通りの置き方があるんですか?

等式を挟む所がマイワールドですみません(汗)

Aベストアンサー

「マイワールド」の「二通り」と仰るのは結局、「分母(2x - π)がtに比例するようにtを定義する」ということでしょ。それをやるには、勝手な(0でない)比例係数を使って、たとえば比例係数を(1/2)として
  t = (1/2) (2x - π) = x - (π/2)
とする。あるいは比例係数を(-1/2)として
  t = (-1/2) (2x - π) = (π/2) - x
とする。あるいは
  t = (1/(2π)) (2x - π) = (x/π) - 2
とする。あるいは
  t = 500 (2x - π) = 1000x - 500π
とする。どれでも良い。

 比例係数が何であっても特に違いはないんだから、係数を何にするのが良いか?なんて心配するのは無駄なこと。「分母(2x - π)がtに比例するようにtを定義する」には、単に
  t = (2x - π)
としとけば充分ですね。

QAccess 2003 iif [日付フィールド] is null のあとで<>がうまく働かない

Access 2003です。
[Start Date], [End Date]を入力するフォームで日付が入力されていなければ、

iif([Start Date] is null,<[End Date],>[Start Date])

のようにクエリ条件を設定したいのですが、
iif [Start Date] is null
を使うと、続く条件の中で<>がうまく働かないという現象が起きます。
(クエリでなにも抽出されない)

iif([Start Date] is nullの条件を入れなければ(つまり[Start Date],[End Date]はブランクにならないという前提ならば)
1. >[Start Date]
2. <[End Date]
3. Between [Start Date] And [End Date]

などどれも問題なく動きますし、
iif([Start Date] is null~の条件を入れても続く条件の中で<>を使わなければ

iif([Start Date] is null,[End Date],[Start Date])

はちゃんと動きます。
どうしてこのような現象が起こるのか、また回避する方法をご存知のかたがいらっしゃいましたら、どうぞご教示ください。
よろしくお願いします。

Access 2003です。
[Start Date], [End Date]を入力するフォームで日付が入力されていなければ、

iif([Start Date] is null,<[End Date],>[Start Date])

のようにクエリ条件を設定したいのですが、
iif [Start Date] is null
を使うと、続く条件の中で<>がうまく働かないという現象が起きます。
(クエリでなにも抽出されない)

iif([Start Date] is nullの条件を入れなければ(つまり[Start Date],[End Date]はブランクにならないという前提ならば)
1. >[Start Date]
2. <[End Date]
3. Between...続きを読む

Aベストアンサー

回避方法については回答出てますので、どうしてこのような現象が起こるのか、について。

クエリのデザインビューの抽出条件では、式の左辺を省略しますが、実際のSQL文に直した場合、自動的に左辺が追加されます。

例えば、あるフィールド([A]とします)の条件が下記だった場合、

>[Start Date]

実際のSQL文での条件は、左辺が追加され、下記の様になります。

WHERE [A] > [Start Date]


抽出条件が質問の式だった場合、

iif([Start Date] is null,<[End Date],>[Start Date])

実際の条件式は下記の様になります。

WHERE [A]=iif([Start Date] is null,[A]<[End Date],[A]>[Start Date])


[Start Date]がnullだった場合、

WHERE [A]=([A]<[End Date])

と評価され、期待通りの結果とはなりません。


クエリのデザインビューは便利ですが、万能ではありません。
(全てのSQL文を表現できる訳ではない)

クエリの実体はSQL文です。複雑なクエリの場合、SQL文についての知識が必要になってきます。

興味があれば、SQL文について勉強してみて下さい。

回避方法については回答出てますので、どうしてこのような現象が起こるのか、について。

クエリのデザインビューの抽出条件では、式の左辺を省略しますが、実際のSQL文に直した場合、自動的に左辺が追加されます。

例えば、あるフィールド([A]とします)の条件が下記だった場合、

>[Start Date]

実際のSQL文での条件は、左辺が追加され、下記の様になります。

WHERE [A] > [Start Date]


抽出条件が質問の式だった場合、

iif([Start Date] is null,<[End Date],>[Start Date])

実際の...続きを読む

Q置換積分について

「置換積分法を微少量の和の極限として説明できる」、
というようなコトを聞きましたが、それはどうやるのでしょうか?

Aベストアンサー

∫f(x)dx 積分範囲はaからbまでとする。

まず区間a≦x≦bをn個の小区間に分割し、各小区間の代表値を定める。
a=x0,b=xnとして、xk-1とxkの間Δxkの代表値を ξkとして次の和を計算する。
f(ξ1)Δx1+…+f(ξK)ΔxK+…+f(ξn)Δxn

n
Σf(ξK)ΔxK……(1)である
K=1

各小区間の幅を0に近づけていったとき(n→∞)の(1)の極限値が
定積分∫f(x)dxである。
ここでx=g(t)によるa≦x≦bとg^-1(a)≦t≦g^-1(b)(逆関数です)
との間の1対1対応を用いて、区間a≦x≦bの分割及び、代表値に対応する、区間g^-1(a)≦t≦g^-1(b)の分割及び代表値を定める。

ξK=g(tk)とすると、x-tグラフより、
Δxk≒g'(tk)Δtk
であることから、(1)は次のように書き換えられる。

n`````````n
Σf(ξk)Δxk=Σf(g(tk))g'(tk)Δtk……(2)
K=1```````k=1

a≦x≦bの分割における各小区間Δxkを0に近づいていけば、
g^-1(a)≦t≦g^-1(b)の分割における各小区間の幅Δtkも0にちかづいていく。このとき(2)は

∫f(g(t))g'(t)dt に近づいていく 。{ 積分範囲はg^-1(a)≦t≦g^-1(b)}。結局、

n ```````` n
Σf(ξk)Δxk≒Σf(g(tk))g'(tk)Δtk
K=1```````k=1
↓ `` ```` ↓

∫f(x)dx= ∫f(g(t))g'(t)dt
(積分範囲aからbまで) {積分範囲はg^-1(a)≦t≦g^-1(b)}

となる。
多少````が気になるかと思いますが、これは位置を調整しているだけなので無視してよいです。

∫f(x)dx 積分範囲はaからbまでとする。

まず区間a≦x≦bをn個の小区間に分割し、各小区間の代表値を定める。
a=x0,b=xnとして、xk-1とxkの間Δxkの代表値を ξkとして次の和を計算する。
f(ξ1)Δx1+…+f(ξK)ΔxK+…+f(ξn)Δxn

n
Σf(ξK)ΔxK……(1)である
K=1

各小区間の幅を0に近づけていったとき(n→∞)の(1)の極限値が
定積分∫f(x)dxである。
ここでx=g(t)によるa≦x≦bとg^-1(a)≦t≦g^-1(b)(逆関数です)
との間の1対1対応を用いて、区間...続きを読む

Q<Windows7>に古いをインストールできるのでしょ

<Windows7>に古い<Office>をインストールできるのでしょうか?

現在<Windows XP>のパソコンを使っています。
<Office>のソフトは<Microsoft Excel 2002>&<Microsoft Word 2002>を使っています。
今回パソコンが故障し、次のパソコン<Windows7>を検討中です。

主に家の家計簿つけぐらいの使用で、全然不便を感じていないので、<Office>のソフトはこのままで良いのですが、<Windows7>に<Microsoft Excel&Word 2002>をインストールできるのか?使えるのか?だけが不安です。

というのは・・・次に考えているパソコンに<Office>は入っておらず、カスタマイズ方式で必要なソフトを注文し、プリインストールしてもらって購入する<Officeはプラス2万円>という購入方法なので、<Windows7>に<Microsoft Excel&Word 2002>が使えるのであれば、家にある<Office>のCDでインストールしたいと考えています。それで、浮いた2万円で<CPU>か<メモリ>のグレードをアップしてカスタマイズ購入しようかと思ってます。

<Windows7>に<Microsoft Excel&Word 2002>をインストールできるのでしょうか?使えるのでしょうか?
MicrosoftのHPを見ても、どこに書かれているのか、どこに問い合わせたら良いのかわからず困っています。
どこで調べたらよいのか、どこに問い合わせたら良いのか でも構いません。
アドバイスください。お願いします。

<Windows7>に古い<Office>をインストールできるのでしょうか?

現在<Windows XP>のパソコンを使っています。
<Office>のソフトは<Microsoft Excel 2002>&<Microsoft Word 2002>を使っています。
今回パソコンが故障し、次のパソコン<Windows7>を検討中です。

主に家の家計簿つけぐらいの使用で、全然不便を感じていないので、<Office>のソフトはこのままで良いのですが、<Windows7>に<Microsoft Excel&Word 2002>をインストールできるのか?使えるのか?だけが不安です。

というのは・・・次に考...続きを読む

Aベストアンサー

私はWindows7(64ビット版)にOffice98(Word98やExcel97)を入れて使っています。
全く問題ないようです。

Q極限値 問題 lim[x→∞](1+(1/x))^

極限値 問題 lim[x→∞](1+(1/x))^x=e

lim[x→∞](1+(1/x))^x=eを使って、lim[x→∞](1+(a/x))^x=e
を求めよ。

a/x=tと置換したり、(1+(a/x))=a((1/a)+(1/x))としたりしてみたのですが、
解き方がわかりません。

ご回答よろしくお願い致します。

Aベストアンサー

それは無理. 問題を再確認してください.
ちなみに元の条件を考えれば「a/x=t」とおくよりも「x/a=t」とおくのが普通だろう.

Q【  "<>*" 】及び【 範囲<>"" 】の意味を教えてください

調べる方法がわかりませんのでここでお聞きします。
文字や数値、式などのデータが入力されているセルのうち数式のみのセルを数える関数を教えていただいた時に次の2つの数式を教えていただきました。
=COUNTIF(範囲,"<>*")
=SUMPRODUCT((範囲<>"")*1)
お蔭様で この式を使って作業は、無事済んだのですが この式を良く理解したいので 再度 ご教示願いたく よろしく御願いします。

1.上の式の【 "<>*" 】の意味
2.下の式の【 (範囲<>"") 】の意味
を教えてください。

Aベストアンサー

「範囲」の意味は、わかったと思うが、はエクセルのシートのセル範囲に名前をつけて、関数の中で
セル範囲の変わりに使うもので、この際は「範囲」という名前だが
同じセル範囲に、「数値」という名前を付ければ、数値で置き換えることになる。
ーーー
前半はA1:A9に
1
2
sf234
s
d
3
4
asd1
a12
のような例を作り
=COUNTIF(A1:A10,"*")  結果5
=COUNTIF(A1:A10,"<>*") 結果4
後者は補集合を捉えるに当たる式
でセルの値を文字列に変えたり、数値に変えたりして、変動の様子を
見ること。
ーー
*はエクセルやプログラムでは、ワイルドカードという名称で呼ばれ、なんでもよいから(内容・長さとも)文字列を示す時に使われる
ものです。これが使える関数と使えない関数があり、それは勉強で
調べるか覚えるよりほかない。
ーー
ダブルコーテイション””が付いているのは、COUNIF関数では
数値量の条件は不要だが、それ以外の演算子(<>など)が付くと
また文字列を条件にする場合は、””で囲むことになっている。
他と不統一のように思うが、覚えて従うよりほかない。
ーー
後者
=SUMPRODUCT((範囲<>"")*1)
SUPPRODUCT関数の理解が難しいのだが、わかりましたか。
=SUMPRODUCT((A1:A10<>"")*1)の例で言うと
A1からA10までに付いて
上の例で説明すると
A1 空白でない
A2 空白でない
A3 空白でない
A4 空白でない
A5 空白でない
A6 空白でない
A7 空白でない
A8 空白でない
A9 空白でない
A10 空白
を判定する。空白でないがTRUE
空白はTRUEという値が返る。
そのTRUEを*1すると(数値の1をかけると、数字文字列に対しても論理値に対しても数値化する)数値の1、FALSEは0になる。
この縦合計(SUMPRODUCTのSUM)すると
A1:A9の9つ1なので9となる。

「範囲」の意味は、わかったと思うが、はエクセルのシートのセル範囲に名前をつけて、関数の中で
セル範囲の変わりに使うもので、この際は「範囲」という名前だが
同じセル範囲に、「数値」という名前を付ければ、数値で置き換えることになる。
ーーー
前半はA1:A9に
1
2
sf234
s
d
3
4
asd1
a12
のような例を作り
=COUNTIF(A1:A10,"*")  結果5
=COUNTIF(A1:A10,"<>*") 結果4
後者は補集合を捉えるに当たる式
でセルの値を文字列に変えたり、数値に変えたりして、変動の様子を
見るこ...続きを読む

Qテーブルを使った置換

Access2002
Accessでクエリ実行時に特定の文字列を置換したいと思っています。
今までは置換する文字列が1つだけだったので、replace関数を使って直接置換する文字列を書いていたのですが、置換する文字列が今後増えてきそうなのでテーブルで管理したいと思っています。

置換用テーブル
元 ,置換後
000022,002078
000218,002403
000447,002703

クエリは単純な選択クエリなのですが、上記のようなテーブルを使ってクエリ実行時に文字を置換する方法がわかりません。
よろしくお願いします。

Aベストアンサー

置換する文字列は項目単位で完全一致しますか。
するなら
SELECT iif( isnull(置換用テーブル.置換後), 置換前.前, 置換用テーブル.置換後)
FROM 置換前 LEFT JOIN 置換用テーブル ON 置換前.前 = 置換用テーブル.元;
でいいかもしれませんね。

Qワードで文字列をフィールドコードに置換する方法

 ワード文書中に配置した特定の文字列を連番などのフィールドコードに一括して置換できますか
フィールドコードは直接、編集できないみたいですが

Aベストアンサー

できます。
置換したい文字列をあらかじめクリップボードにコピー(Ctrlキー+CまたはX)し、「置換後の文字列」で(あいまい検索をオフにして)特殊文字の中の「クリップボードの内容」を選択。

Qエクセルの置換について

セルに次のような数式が入っているときに数式の部分だけ置換する方法がありましたらご指導お願いします。
[B1]
=SUM(A1+A2) →置換後 =A1+A2
[B2]
=SUM(A10+A20) →置換後 =A10+A20
[B3]
=SUM(A100+A200) →置換後 =A100+A200
置換する方法は「編集」-「置換」で
検索する文字列と置換後の文字列が分かりません。
SUM(で置換をかけると数式エラーで置換が出来ず
SUM(*)で置換をかけると当然ですが全て消えます。
お手数ですが宜しくお願致します。

Aベストアンサー

一回では無理だと思います

=SUM( を # で置換
=SUM(A1+A2) → #A1+A2)

) を 空白 で置換
#A1+A2) → #A1+A2

# を = で置換
#A1+A2 → =A1+A2

この様な方法しか思いつきません

Qワード 置換で空白行をなくすことはできますか

ワードで空白の行を一気に消したいのです。

下矢印が右に曲がっている改行記号に関しては
置換を使って消せると言うことがこちらの
回答履歴で理解したのですが、
ただの下矢印記号の場合同じようにできるのかどうか
教えてください。

お願いします。

Aベストアンサー

[検索する文字列]は「^l{2,}」です。
数字の「2」の後ろ「,」(カンマ)を忘れていませんか?

また、[置換後の文字列]は「^l」です。
「\l」でも「\1」でもありません。

私の環境はWord 2003ですが、
 [検索する文字列]:^l{2,}
 [置換後の文字列]:^l
で、yoshi0408さんの希望通りに動作します。
なお、ANo.6 enunokokoroさんの回答も、希望通りに動作します。


人気Q&Aランキング

おすすめ情報