
アクセスでテーブル内の全セルに入っている改行コードを削除したいのですが、ネット上を検索しても中々解決に至らないので質問させてください。
例えば【http://q.hatena.ne.jp/1156520575】の様なスクリプトは様々な物が検索にヒットするのですが、このコードをVBエディターの標準モジュールに入力した後、どのように実行すればいいのでしょうか。
エクセルであれば分かるのですがアクセスは初めてまだ1ヶ月足らずのため、なかなか理解できません。
クエリを使う方法【http://www.accessclub.jp/bbs3/0038/superbeg15657 …】も参考にしたのですが、この方法は対象とするフィールドが少なければ実効に成功しましたが、私の扱っているテーブル(40以上のフィールドが存在し2万行近いデータがある)では検索結果に何もヒットせず実行できませんでした。
この他にもいろいろな方法を検索し検証してみましたが、やはり解決には至りませんでした。
上記の方法の補足をお願いしたいのですが、他によい方法があれば教えて頂きたいです。
理想はテキストエディタの様に置換で解決できれば簡単で良いのですが^^;どうも無理のようです・・・
環境は
ACCESSバージョン:ACCESS 2002(10.2627.2625)
Windowsバージョン:WindowsXP Proffessional Version2002 Service Pack 2
よろしくお願いいたします。
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
ADO,DAO を全く知らなければ、No1さんの回答では辛いでしょうから
比較的、簡単な方法で。
(1)フォーム、新規作成で、元になるテーブルを選択し
オートフォーム:表形式でフォームを作成します。
使い捨てですから、デザインは気にせずに。
(2)デザインビューにして
フォームフッターまたはフォームヘッダーに
ラベルを追加(コマンドボタンのように使いますが、
(フォーカスの関係でラベルにするのがポイントです。)
表示する文字は何でも良い。
(3)ラベルのクリック時のイベントプロシージャに
-------------------------------------------------------------
Private Sub ラベル1_Click()
Dim fld As String
Dim pos As Long
Do While True
DoCmd.FindRecord Chr(13) & Chr(10), acAnywhere, False, , False, acAll, False
If Me.ActiveControl.Name = fld And Me.Recordset.AbsolutePosition = pos Then
Exit Do
Else
Me.ActiveControl = Replace(Me.ActiveControl, vbNewLine, "")
fld = Me.ActiveControl.Name
pos = Me.Recordset.AbsolutePosition
End If
Loop
MsgBox "終了しました"
End Sub
--------------------------------------------------------------
のように。
Private Sub ラベル1_Click()
の「ラベル1」の部分は実際のラベルの名前で。
(4)一応、保存してから、フォームを開き、
1行目の左端のフィールドにカーソルがある状態で
ラベルをクリック。
クリックしても、ボタンと違って見た目は無反応ですが
正常にできれば、終了メッセージが表示されます。

No.3
- 回答日時:
あーすいませんbugありました。
・・英語でテストしてたもので日本語にすると文字化けします。
ac = Asc(Mid(st, i, 1))の部分を
ac = AscW(Mid(st, i, 1)) に変更してください。
どうぞ宜しく!!

No.2
- 回答日時:
一例ですが変換関数を書いてみました参考にどうぞ。
Public Function mozihennkann(mozi As String) As String
'Sub test()
Dim st As String
Dim ac As String
Dim bc As String
Dim i As Integer
For i = 1 To 1000
st = CStr(mozi)
ac = Asc(Mid(st, i, 1))
If ac = (ac = 13) Or (ac = 10) Then
Else
bc = bc & ChrW(ac)
End If
On Error GoTo kill:
'Debug.Print ac
Next i
kill:
'Debug.Print "結果" & bc
mozihennkann = bc
End Function
No.1
- 回答日時:
SQLを使うとか高等な方法でなく、一番小回りが効く、ADOに戻って考えれば、なんと言うこともない問題では無いでしょうか。
アクセスのモジュールに
Sub ADO001()
Dim cn As ADODB.Connection
Set cn = CurrentProject.Connection
MsgBox cn.Version
strPass = CurrentProject.Path
strname = CurrentProject.Name
MsgBox strPass & "\" & strname
Set rs = New ADODB.Recordset
rs.Open "社員2", cn
fn = rs.Fields.Count
Do Until rs.EOF
' MsgBox rs!氏名 & "-" & rs!住所 & "-" & rs!電話番号
For i = 0 To fn - 1
MsgBox Nz(rs.Fields(i))
Next
rs.MoveNext
Loop
rs.Close: Set rs = Nothing
cn.Close: Set cn = Nothing
End Sub
を張り付け
例データ テーブル名 社員2
ID氏名住所電話番号重複
1山田 三郎東京都大田区03-2345-6543a
2大島 義男東京都品川区042-2345-2345
3下田 茂仙台市青葉区0720-34-3456a
4小出 健二名古屋市緑区042-345-2345
5中田 卓福岡市北区07523-23456a
に対し実行すると、全てフィールド(フィールド数は上記例にある)はを捉えられました。
後は、Mgboxの行に
各フィールドで、削除のためのReplceを行い、Edit、Updateでレコードを更新すれば良いのでは。処理時間はかかるかも知れないが。
ーー
ADOが初耳なら
http://www.accessclub.jp/ado/
など読んでください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
Access2003で特定列の改行コードを削除してCSVへエクスポート
Excel(エクセル)
-
Accessでの置換
Access(アクセス)
-
ACCESSでの改行コード
その他(データベース)
-
-
4
Access 改行コードに置き換え
その他(Microsoft Office)
-
5
アクセスで#エラーを表示させない方法は?
Access(アクセス)
-
6
Accessのクエリで、replace関数を使い、データの中にある”をブランクに置き換えたいのですが
Access(アクセス)
-
7
レコード削除時に(サブ)フォームに表示される#Deleted"について"
Access(アクセス)
-
8
Nullの使い方が不正です。
Visual Basic(VBA)
-
9
Chr(13)とChr(10)の違いは?
PowerPoint(パワーポイント)
-
10
Access で 特定の文字の個数をしりたい
Access(アクセス)
-
11
アクセス・テーブルの改行についてです。
Access(アクセス)
-
12
[Access]帳票フォームにて連続する非連結コントロールに個々の値を入れるには
Access(アクセス)
-
13
Accessフォームに行番号を自動的に付与するには
Access(アクセス)
-
14
IIF関数の使い方
Visual Basic(VBA)
-
15
<ACCESS>別テーブルのレコードのテキストデータが中に含まれるレコードを抽出する方法を教えてください
Access(アクセス)
-
16
Accessのマクロでモジュールを実行させたい。
Access(アクセス)
-
17
文字列からタブコードを取り除きたい
Visual Basic(VBA)
-
18
Access 昇順・降順で並び替えできない
その他(データベース)
-
19
フォームのコントロールソースにReplace関数を使うには?
Access(アクセス)
-
20
2つのテーブルに共通するレコードを削除したい
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ACCESS 検索置換 にデ...
-
エクセルのデータをアクセスに...
-
ACCESSのテーブルのデータで、...
-
アクセスのオートナンバーが飛...
-
Accessチェックボックス 一度で...
-
アクセスのエラー「クエリには...
-
日付型のフィールドに空白を入...
-
アクセスのクエリー作成
-
年度ごとの最大値
-
ファイルメーカーのCase関数で
-
差込印刷での全角表示について...
-
テキストボックスにクエリ結果...
-
ピボットでの時間集計
-
2つのテーブルに共通するレコ...
-
アクセス 項目毎にデータを横...
-
ACCESS 重複データを1...
-
Accessの電話番号フィールド
-
ACCESSのクエリで抽出条件「ま...
-
アクセスで追加した項目に全て...
-
Accessで、1つの項目に複数の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルのデータをアクセスに...
-
ACCESSのテーブルのデータで、...
-
ACCESSで改行コードを削除する方法
-
アクセスのオートナンバーが飛...
-
EXCEL→ACCESSインポートでセル...
-
Accessチェックボックス 一度で...
-
Access2003でフィールドのデー...
-
郵便番号の-(ハイフン)等をま...
-
ACCESS フォームに入力できる文...
-
Access2000 テキストデータの...
-
ACCESS 検索置換 にデ...
-
ACCESSのカスタマーバーコード...
-
エクセルの重複データについて...
-
Accessのコピー&ペースト
-
ACCESSで行数を増やすには?
-
差込印刷での全角表示について...
-
日付型のフィールドに空白を入...
-
アクセスのエラー「クエリには...
-
SQL文で パラメータが少なすぎ...
-
アクセスで追加した項目に全て...
おすすめ情報