• ベストアンサー

一つのテーブルの全てのフィールドを一気に半角にする方法

テーブル1に フィールド1、フィールド2、フィールド3・・・と多数のフィールドがあり、 全ての全角文字を半角にしたいのですが 更新クエリで UPDATE テーブル1 SET テーブル1.フィールド1 = StrConv([テーブル1]![フィールド1],8); UPDATE テーブル2 SET テーブル2.フィールド2 = StrConv([テーブル2]![フィールド2],8); とフィールドつづやってくしかないですかね? もっと効率のいい方法があれば教えてください! よろしくお願い致します。

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

  • ベストアンサー
  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

SET には複数の式をカンマで区切って記述できます。 なので update テーブル1 set テーブル1.フィールド1 = StrConv([テーブル1]![フィールド1],8), テーブル1.フィールド2 = StrConv([テーブル1]![フィールド2],8), テーブル1.フィールド3 = StrConv([テーブル1]![フィールド3],8) ; です。 (結局、全フィールド記述ですね)

fdshjs
質問者

お礼

一個一個やるよりこっちの方が楽ですね。 ありがとうございます。

その他の回答 (1)

  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.2

別件でADOXについて調べていたので、試しにやってみました。当方Access2000です。 Sub testx() myConvNarrow ("Table5") End Sub Private Sub myConvNarrow(myTableName As String) Dim CAT As Object, CLM As Object DoCmd.SetWarnings False Set CAT = CreateObject("ADOX.Catalog") CAT.ActiveConnection = CurrentProject.Connection For Each CLM In CAT.Tables(myTableName).columns DoCmd.RunSQL "UPDATE " & myTableName & " SET " & CLM.Name & "= StrConv(" & CLM.Name & ",8);" Next CLM DoCmd.SetWarnings False End Sub

fdshjs
質問者

お礼

お返事遅くなってすいません! すごい!テーブル名を変えるだけでうまくいきました。 ADOXを勉強してみたいと思います。 ありがとうございます。

関連するQ&A