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と関連する良く見られている質問

QACCESSで空白のデーターをクエリで判定/識別する方法を教えてくださ

ACCESSで空白のデーターをクエリで判定/識別する方法を教えてください。
EXCELでは空白を""で判定/識別表していますがACCESSではどうなるのでしょうか。

下の例はフィールドに試験番号があればその番号を、空白なら”欠席”と表示しようとしています。
IIf(([試験番号]="空白の場合何を入れる?"),[試験番号],"欠席")

Aベストアンサー

もうひとつの書き方は
式1: IIf([試験番号] Is Not Null,[試験番号],"欠席")
第2、第3引数の、質問の順序にあわせるとこうなる。

QAccessのテーブル内の文字の置き換え

Accessのテーブルへ他のデータベースから品名マスターをインポートしました。その品名の中に「*」の文字が使ってあり、その「*」を「×」の文字に置き換えたいのですがなにか良い方法があれば教えて下さい。
因みに品名マスターは以下のようになっています。

コード  品名           単価   単位
00010  Becu1.2*2000     9970.0   Kg
00020  Becu1.5*2000     7980.0   Kg
      ↓

コード  品名           単価   単位
00010  Becu1.2×2000     9970.0   Kg
00020  Becu1.5×2000     7980.0   Kg

上記の用にしたいのですが。
よろしくお願いします。

Aベストアンサー

テーブルを開いて、列名(品名のところ)をクリックして選択。
編集 → 置換にて
検索文字列に [*]
置換文字列に ×

探す場所のプルダウンで「品名」がでて来ますので選択
検索条件フィールドの一部分
でどうでしょう?

QAccessのクエリで、Left関数を使用して、7桁の数値を抜き出す方

Accessのクエリで、Left関数を使用して、7桁の数値を抜き出す方法。
IDが8桁で入力されているのですが、左から7桁だけを抜き出して、全てのレコードを表示させたかったのですが、誤って入力されている7桁のIDしか表示されませんでした。
いつもExcelを使用している感覚だったので、文字の左から7桁の数値や文字列を抽出して表示してくれるものと思っていました。
元のテーブルに入力されているIDを変更することなく、
クエリで、7桁だけにして、その取り出した7桁で区別し、グループとして認識し合計を出したいと考えているのですが、どうすればよいのでしょうか。
宜しくお願い致します。

Aベストアンサー

>Left関数をする前は、5000行程なのですが、関数を加えたとたん4300程度に減ってしまいます。

関数を加えるのでは無く、関数だけ(演算フィールドのみ)のクエリを作成をして実行させます
単にleft関数で左から何文字取れという演算フィールドしか持たないクエリを実効させれば、指定した桁数に満たない場合には実際にある桁数まで、一文字も入っていない場合には0を返して、全データ分のクエリ結果を返します

全件分のデータが帰って来ないという事は作成しているクエリに問題ありの可能性高いです

先の書き込みに書きましたが、手順は演算フィールドのみのクエリを作成し実行させ全データが取得出来る事を確認してから、この演算フィールドのみのクエリに必用なフィールドを追加してゆくって事してください

QAccessで、1つの項目に複数の置換えを1度でするには?

Access2003で、1つの項目に複数の置換えを1で実行したいのですが、どうすればいいのでしょうか?
編集メニューの『置換』を使うのではなく、クエリやマクロで実行したいのです。

どんどん溜めているデータを定期的に決まった文字を1度に変換できるようにしたいのです。

例えば、[会社名]フィールドに入っている
 「株式会社」 を 「(株)」 に、
 「有限会社」 を 「(有)」 に、
 「法人会社」 を 「(法)」 に、…続く…、などと置換えしたいのです。

更新クエリで、『Replace([会社名],"株式会社","(株)")』 と1つなら置換えできたのですが、複数置換えしたい場合は、同様のクエリをその数だけ作ってマクロで続けて実行させるという方法しかないのでしょうか?

できればクエリを増やしたくないので、他にいい方法がありましたら、教えて下さい。

Aベストアンサー

同一のReplace関数のネストで、下記は2つの例ですが、3つまでぐらいなら、式が長くなるが辛抱できるのでは。
Replace(Replace([学校],"北小学校","北新小学校"),"中央小学校","中央北小学校")
生徒テーブルの学校フィールドで
A生徒の学校フィールド  北小学校ー>北新小学校
B生徒の学校フィールド  中央小学校ーー>中央北小学校
になったフィールドを作れました。

QAccessにおいてフィールドがNULLの値を0に変換するには

下記のようなSQLで件数を取得したいと考えています。
テーブルBの件数がNULLの場合、差がNULLになってしまいます。
このような場合、差を0にしたいです。
どのように修正したらよいでしょうか。

SELECT A.ID, (A.件数-B.件数) AS 差
FROM A LEFT JOIN B ON A.ID = B.ID;

Aベストアンサー

Nz関数で良いかと

例:
SELECT A.ID, (A.件数-Nz(B.件数,0)) AS 差
FROM A LEFT JOIN B ON A.ID = B.ID;

Qアクセスの初心者の質問です(空白の場合に他のフィールドを表示させたい。)

あるテーブルの型名が空白の場合、同テーブルの部品名を表示させたく、更新クエリで、下記のように式を作成しましたが、空白のままのレコードが残ります。
IIf(IsNull([型名]),[部品名],[型名])

更新クエリのテーブル名やフィールド名は間違ってないように思います。
初心者の為、説明がわかりにくくてすみません。
わかる方教えてください。

Aベストアンサー

 No.4の続きです。
 うろ覚えで回答を投稿して申し訳ありませんでした。
 ただいま手元で確認しましたが、
IIf(Len(Trim([型名] & ""))=0,[部品名],[型名])
でいけるはずです。(問題点が空白の判定にあると仮定しての話ですが。)

QAccess リストから文字の置換(Replace)  

Accessで特定の文字を置き換えたいです。
ただ、置換するだけなら、Replace([商品名],"ⅰ","1")でいいような気がしますが、
置換したい文字が複数あり
今後も増えていくのでテーブルでリストを作成しました。
元の文字 置換文字
ⅰ     1
ⅱ     2
I     A
II     B
元の文字を、置換文字に置き換えたいです。
また、商品名は、
I たばこ
II 文房具
になっているものや、
商品券ⅰ、ビール券ⅱ
と言うのがあるので、置換文字の入る場所はバラバラです。
質問がわかりにくくてすみません。
どうぞよろしくお願いします。

Aベストアンサー

Accessのテーブル内の文字列を置き換えたいということ
でしょうか?

変更リストが例に挙げられているだけなら、Accessの置換機能
でも十分だと思います。

VBAでやるにしても:
Replace([商品名],"","1")
Replace([商品名],"","2")

とある分だけ追加して行けば済むことではないでしょうか?
もちろん、何千個もあるのなら、配列に読み込ませて処理を
する、という方法もありますが。

もう少し情報が欲しいです。

QACCESS 重複データを1つだけ表示したい(初心者です)

ACCESSで複数のフィールドに全く同じレコードが複数存在します
(例)
フィールド1  フィールド2  フィールド3
愛知      田中      12
愛知      田中      12
愛知      田中      12
三重      山本      23
三重      山本      23
岐阜      鈴木      33
岐阜      鈴木      33

もともと他のデーターベースからCSVで落としたものをインポートしているので、データの存在自体はどうしようもありませんが、これらの重複しているデータを1件だけ表示したいのです。つまり
(例)
フィールド1  フィールド2  フィールド3
愛知      田中      12
三重      山本      23
岐阜      鈴木      33

どのようにすればよいでしょうか。

Aベストアンサー

クエリにて[固有のレコード]プロパティーを[はい]にします

Qアクセスで文字列中の空白を削除する方法

アクセスで下記のような文字列中の空白を削除する方法を教えてください。

「東○京」、「東○○京」、「東○○○京」のように(○はスペースを表しています。)、スペースの数も様々なものを「東京」にしたいのですが・・・

なお、編集→置換ではなく、関数を使ったものでお願いします。

Aベストアンサー

単純にReplace関数を使うでは問題あるのかしら?
全角空白をブランク文字列に置き換える
もし半角もあるなら半角空白1文字をブランク文字列に置き換え

SELECT Replace(Replace(都道府県,"○","")," ","") AS 都道府県名
FROM テーブル名

QOfficeアクセス テーブル「テキスト型」⇒「日付型」への変換について

テーブルにデータが保管されており、そのフィールドの一つに「テキスト型」で”20080301”のようなデータを持っています。これを「日付/時刻型」”2008/03/01”のように変換したいのですが、どのようにすればよいのでしょうか。

※ちなみにこのオリジナルデータは毎日、自動的にテーブルにダウンロードされており、このテーブル自体の型を予め「日付/時刻型」に変換すると、日々のデータ取得時にエラーとなってしまいます。ですので、「日付/時刻型」のフィールドを持った新規のテーブルに、この”20080301”のデータを変換し格納したいのですがどのようにすればよろしいでしょうか。

テーブル⇒デザインより、該当のフィールドの型を「テキスト型」⇒「日付/時刻型」へ直接変換してしまうと、「データの変換中にエラーが発生しました。○○件のレコードのデータが失われました。」と表示されます。素人のため、なるべく追加クエリや更新クエリや簡単な関数のみでの方法を教えていただけたら幸いです。

Aベストアンサー

テーブルに日付時刻型フィールドを追加して、
更新クエリを使って、#1さんが提案されている
数式を使えばよいのでは?


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング

おすすめ情報