• 締切済み
  • 困ってます

アクセスDBファイルの複数テーブルの文字列を簡単に置換するには?

アクセスのデータベースファイル内30テーブルほどの データがあります。 そのデータ内にあるひとつの文字(例えばABC)という 文字列があり,それを別の文字列(例:1000)に一括して 置き換えたいのですが,今のところ,一つ一つテーブルを 開いて置換コマンドを使って文字列を入力しています。 しかし、データベース内にあるABCと言う変数は計算に 使用するためその都度変更する必要があるため、とても面倒に感じています。 アクセスだけでこの作業はできるのでしょうか。 もし、できなければ外部プログラムでなにか良いものが あるでしょうか。ご教授ください。 よろしくお願いします。

共感・応援の気持ちを伝えよう!

  • 回答数3
  • 閲覧数572
  • ありがとう数5

みんなの回答

  • 回答No.3
  • ARC
  • ベストアンサー率46% (643/1383)

以下のような内容のモジュールを作成して、 ReplaceField をマクロなどに登録して実行してください。 どうやってマクロに登録するの?とか やってみたけど動かない… とかがあれば、補足をお願いします。 Public Function ReplaceField()   'TODO:置換するテーブル名、置換するフィールド名を適当に書き換えてください。   Dim FndStr As String   Dim RepStr As String   FndStr = InputBox("検索する文字列を入力して下さい")   RepStr = InputBox("置換後の文字列を入力して下さい")   Call ReplaceFieldSub("置換するテーブル名1", "置換するフィールド名", FndStr, RepStr)   Call ReplaceFieldSub("置換するテーブル名2", "置換するフィールド名", FndStr, RepStr)   Call ReplaceFieldSub("置換するテーブル名3", "置換するフィールド名", FndStr, RepStr)   Call ReplaceFieldSub("置換するテーブル名4", "置換するフィールド名", FndStr, RepStr)   Call ReplaceFieldSub("置換するテーブル名5", "置換するフィールド名", FndStr, RepStr) End Function Private Function ReplaceFieldSub(TableName As String, FieldName As String, FndStr As String, RepStr As String) As Long   Dim SQL As String   SQL = "UPDATE " & TableName _     & " SET " & FieldName & " = ReplaceStr([" & FieldName & "],'" & FndStr & "','" & RepStr & "');"   CurrentDb.Execute SQL End Function Public Function ReplaceStr(ByRef SrcString As Variant, FndStr As String, RepStr As String) As String   Dim StrPos As Long, SrcStart As Long   Dim RepLen As Long, FndLen As Long, SrcLen As Long, DiffLen As Long   ReplaceStr = CStr(Nz(SrcString, ""))   SrcStart = 1   RepLen = Len(RepStr): FndLen = Len(FndStr): DiffLen = RepLen - FndLen   FndLen = FndLen - 1: SrcLen = Len(ReplaceStr)   Do     StrPos = InStr(SrcStart, ReplaceStr, FndStr, vbBinaryCompare)     If StrPos = 0 Then Exit Do     ReplaceStr = Left$(ReplaceStr, StrPos - 1) & RepStr _     & Right$(ReplaceStr, SrcLen - StrPos - FndLen)     SrcLen = SrcLen + DiffLen: SrcStart = StrPos + RepLen   Loop End Function

共感・感謝の気持ちを伝えよう!

関連するQ&A

  • 文字列の置換について

    MySQLデータベース内の文字列を、別の文字列に書き換えたいんです。 例えば、文字列"http://www.xxx.com" を文字列"http://www.yyy.com"に書き換えます。 SQL文で操作して、一気にデータベースの各テーブルに入った大量の文字列を全部置換させたいんです、そのSQL文どういうふうに書きますか? ご存じの方がいっらしゃいましたら、どうぞお教え下さい。

    • ベストアンサー
    • MySQL
  • 長い文字列の置換を出来るエディタを教えてください。

    数式Texのコマンドなんですが、1000文字の文字列を1500文字の文字列に置換しようとしたところ、255バイト以上のデータはきられてしまい、正常に置換できませんでした。 秀丸、Wordのソフトウェアや複数行置換のフリーウェアを探したのですが、正常に置換できませんでした。 このように1000文字を1500文字への置換等、長い文字列を置換できるソフトウェアがあれば教えてください。

  • CSVファイルの文字列を置換したい

    こんばんは。 CSVファイルが5000ファイル程あります。 それぞれのファイルのある特定の文字列を、一括で 置換する必要があります。 このファイル一つ一つを開いて、手動で置換していた のでは気が遠くなってしまいます。 なにか良いフリーソフトは無いでしょうか? ご存知の方よろしくおねがいします。

  • 回答No.2
  • yaasan
  • ベストアンサー率20% (1384/6783)

mnabeさんと重なるところがありますが、変換するデータが "ABC"という文字列を"1000"という文字列に変換するので あれば、クエリーの中にある更新クエリーで抽出条件を "ABC"にして、レコードの更新を"1000"にすると一度に 変換できます。それをテーブルごとに作成しマクロで順番 にクエリーを動かしていけば、初めに作成するときは時間 がかかりますが、二度目からはマクロ一つ動かすだけで できますよ。  また、文字列"ABC-BBD"の中の"ABC"を"1000"に変換して "1000-BBD"にしたい場合はmnabeさん同様に補足をください。

共感・感謝の気持ちを伝えよう!

  • 回答No.1
  • mnabe
  • ベストアンサー率33% (427/1283)

変換の方法はいくらでもありますが、その前に一つ確認。 変換するデータは、  フィールドAにある"ABC"ってデータを、"1000"に変換でOKなのでしょうか?  それとも、フィールドAにある、"ABC-BBD"の"ABC"を、"1000"に変換なのでしょうか?  前者なら、テーブル毎に UPDATE テーブル名 SET テーブル名.フィールドA = '1000' を実行すれば変換出来ます。後者は、書くのが面倒なので割愛。後者の場合には、補足下さいね(^^;

共感・感謝の気持ちを伝えよう!

質問者からの補足

皆さん,早速の回答,有り難うございました。 説明不足だったのですが、 "ABC-BBD"の"ABC"を、"1000"に変換する ということをしたかったのです。 すいませんでした。

関連するQ&A

  • [Linux] ubuntuでコマンド中の文字列を置換して実行する。

    bashを利用しております。 #mv /abc /abc0 && mv /abc2 /abc 上記コマンドを実行した後、abcという文字列をxyzに置換 (内容的には#mv /xyz /xyz0 && mv /xyz2 /xyzと同一)し、 コマンドを手動で実行する方法を探しています。 ヒストリ置換を用いて 「直前に実行したコマンドのabcという文字列をxyzという文字列に置換して実行する」 にはどのようにすればいいのでしょうか? また、もっといい方法がございましたら、 教えていただけますでしょうか? よろしくお願いいたします。

  • ファイル内の文字列を置換

    掲示板利用させていただきます。 現在、ファイル内の特定の文字列を置換し、 保存する方法を探しています。 できればスクリプト言語を利用したいと考えています。 sedコマンドを使用して文字列置換を行ったのですが 置換前と置換後のファイルで 文字コードと改行コードが変わってしまうのでダメでした; 「ファイル内の特定の文字列を任意の文字列に置換し、置換前と置換後で改行コードと文字コードを変えない方法」 をご存知の方、ご教示ください。 bash,perl,javaのどれでも結構です。 よろしくおねがいします。

  • 文字列の置換

    JAVAであるファイル内の文字列を置換するプログラム(日本語)を作りたいのですが、 ・ ・ String h_s; FileReader h_fr = new FileReader(in_filename); BufferedReader h_br = new BufferedReader(h_fr); while(true){  h_s = h_br.readLine();  if (h_s == null){   break;  }  ●文字列を置換するプログラム● } ・ ・ ここの●文字列を置換するプログラム●にあたる適当な関数って何かありますか? たとえばperlでいうと↓みたいなものなのですが・・・ s/置換前文字/置換後文字/g よろしくお願いします。

    • ベストアンサー
    • Java
  • 【アクセス】ハイパーリンク アドレスと表示文字列のどちらも置換したい

    テーブル1のフィールド「アドレス」をハイパーリンク型にし、 レコードに 表示文字列:C:\Users アドレス:C:\Users と入れています。 ここで 置換と検索ダイアログを呼び出して 検索する文字列:C:\ 置換後の文字列:D:\ にしてすべて置換をおしても 表示文字列しか置換されません。 表示文字列もアドレスも同じように置換するにはどうすればいいのでしょうか? よろしくお願い致します。(当方アクセス2003です)

  • SQL SERVER 2005 にて全テーブルの文字列を置換する方法を

    SQL SERVER 2005 にて全テーブルの文字列を置換する方法を探しています。 ものすごく基礎的なことでしたら申し訳ございません。 SQL SERVER 2005で作成したDBがあるのですが、この中の全てのテーブル内を検索し、 「AAA」という文字列を「BBB」に置換したいと考えています。 上記は例えですが、とにかく全てのテーブル内の全ての文字列を検索し、置換できる方法は無いでしょうか。 どうかご教示のほど、よろしくお願いいたします。

  • ファイル内のある文字列以降を置換

    よろしくお願いします。 OS: Windows Server 2003, MS-DOSコマンドによるバッチで、あるテキストファイル内を検索し、 ある文字列を見つけたら別のある文字列に置換する、という ものを検討中です。 findstr と for文を使用して試行錯誤していますが、 なかなかうまい方法にたどり着きません。 以前ここで教えていただいた http://okwave.jp/qa2602345.html を応用してできないか? ということについても考えているのですが、 なかなか難しいです。 具体的に置換したい文字列というのは、 Dirコマンドの結果で出力されるドライブ文字を 例えば すべてD:\ から すべてE:\ へ変更するということです。 どうぞ、アドバイスのほど、宜しくお願い致します。

  • テキスト置換ソフトで、特定の文字列が●個出てくるごとに置換できるもの知りませんか?

    以下のような機能をもつ テキストファイルの置換ソフトを探しています。 特定の文字列が●個出てくるごとに、 その●個目の部分だけを置換する機能です。 たとえば、 abc abc abc abc abc abc abc abc という文字列があるとして、 手動ではなく一括で以下のように置換をしたいのです。 abc ABC abc ABC abc ABC abc ABC この例では、abcが2つ登場するごとに、ABCという文字列に置換されていますね。このように特定の文字列(この例ではabc)が●個出てくるごとに、その●個目の部分だけを置換するというような機能を持つ(できれば)フリーソフトなどをご紹介いただければありがたいです。 秀丸エディタなどのテキストエディタでは、おそらくできないと思うのですが、もしできるのであれば、そのやり方を教えていただいても構いません。 よろしくお願いいたします。

  • 複数の文字列を同時に置換できるソフト

    こんにちは。 複数の文字列を一括で置換できるソフトで、 以下の条件に合ったソフトを探しております。 (1)HTMLファイルが読み込める。 (2)複数の文字列を同時に一括置換できる(複数行を対象に)。 (↑あらかじめ置換したいリストを作成・登録する形に なるのかもしれません。) (3)さらに複数のファイルで同時に置換できる。 上記の(1)、(2)は必須になります。 可能であれば、(3)ができれば大変助かります。 ・・以上のようなフリーソフトはありますでしょうか? ご回答よろしくお願い致します。

  • Telnetコマンド/ディレクトリ内の複数ファイルの中から特定の文字列を置換したい

    TelnetでLinuxにログインしています。 ディレクトリ内の複数ファイルの中から特定の文字列を置換したいのですが、その方法(コマンド)がわかりません。 例えば、/webディレクトリ内にある全ファイルの中から、「abc」という文字列を見つけて、それを「xyz」に置換したいのです。 どうぞ、ご指南の程、宜しくお願い致します。

  • emacsで文字列の置換

    新しい職場で emacs を使い始めたのですが、文字列の置換をすると動作が変です。 ・abc → DEF という置換をすると、なぜか ・abc → DEFbc となってしまいます。 M-% M-x replace-string のどちらで置換しても同じです。 とても困っています!!どなたかアドバイスを!!!

専門家に質問してみよう