• ベストアンサー

と改行を含んだデータが入ってるのですが

アクセスのレコードに 水300cc 味噌13g と改行を含んだデータが入ってるのですが VBAでこの改行を置換するにはどうすれば良いのでしょうか? str置換前 = Chr(10) & Chr(13) str置換後 = "," strSQL = "UPDATE テーブル Set テーブル.[フィールド] = """ & str置換後 & """ WHERE (テーブル.[フィールド])=""" & str置換前 & """;" DoCmd.RunSQL strSQL としても置換できませんでした。

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

  • ベストアンサー
  • m3_maki
  • ベストアンサー率64% (295/459)
回答No.1

strSQL = "UPDATE テーブル SET [テーブル].[フィールド] = Replace([フィールド],Chr(13) & Chr(10),',') WHERE [テーブル].[フィールド] Like '*' & Chr(13) & Chr(10) & '*'" では?

JWUSCYWTL
質問者

お礼

ご回答ありがとうございました。

関連するQ&A

  • 句読点の「。」を改行するには?

    テーブルに あああ。いいい。ううう。 の値がフィールドに入っているのですが、 あああ。 いいい。 ううう。 にしたいです。 データ型はメモ型です。 UPDATE テーブル1 SET [テーブル1].test = Replace([テーブル1]![test],"。",Chr(13)); このようなクエリを作ったのですが、 実行するとなぜか あああ いいい ううう になってしまいました。 エラーになると思ったのですが・・・ そもそもChr(13)はvbaのコードだから更新クエリでは無理ってことですかね? どうやったらテーブルのデータを改行できますか?

  • access一部のフィールドを他のテーブルへVBA

    先日 https://okwave.jp/qa/q10245651.html において > table2の新しいデータとして > table1のデータをコピーしたい、 単に追加で ということであれば、という 御回答: Sub Test() Dim StrSQL As String StrSQL = "INSERT INTO table2 SELECT table1.* FROM table1;" DoCmd.SetWarnings False DoCmd.RunSQL StrSQL DoCmd.SetWarnings True End Sub ---------------------- 上記の 回答をいただき うまく稼働しました 部分的にフィールドを別テーブルに 移動するとき ここでは table1のフィールド名 IDに table2のフィールド名 bに 入っている数値 にい 1を加えた数値を 移動したいのですが Public Function Test() Dim tb1 As Table Dim tb2 As Table tb1 = table1 tb2 = table2 Dim strSQL As String strSQL = "INSERT INTO table2![ID]SELECT"("[b]"FROM tablel)+1" (table1のフィールド[b]の数値に1を加えた数値を table2のフィールド[ID]に移行する、というつもりです) DoCmd.SetWarnings False DoCmd.RunSQL strSQL DoCmd.SetWarnings True End Function 稼働しません すみません 宜しくお願い致します (ついでながら ここで でてくるb というのは テーブル table3 の IDの総和 すなわち SELECT Count(table3.ID) AS b FROM table3; 要は table3の最後のレコードの次のレコードの 番号の数値を table2のIDに移動したい というわけであります) (いずれのIDや bについても 数値型 長整数型 重複あり です)

  • VBA Chr(10) Chr(13)

    アクセスのテーブルの値をvbaで操作してるのですが Chr(10) + Chr(13) と Chr(10) & Chr(13) は、同じ意味と認識していいのでしょうか? これを実行して置換等をした場合、改行される時とされない時があり不思議に感じています。 フォームに紐づいたレコードソースをテキストボックスに表示させていて、改行させて表示させたい場合があります。

  • AccessのクエリでvbLfのみ抽出するには

    Access2010のクエリー(SQL)で vbLfかvbCrLfが含まれているレコードを抽出するには、 SELECT [テーブル1].* FROM テーブル1 WHERE [テーブル1].フィールド1 Like "*" & Chr(10) & "*"; vbLfが含まれているレコードは抽出せず、 vbCrLfが含まれているレコードだけを抽出するには、 SELECT [テーブル1].* FROM テーブル1 WHERE [テーブル1].フィールド1 Like "*" & Chr(13) & Chr(10) & "*"; でよいと思いますが、 vbCrLfが含まれているレコードは抽出せず、 vbLfが含まれているレコードだけを抽出するには、 どのように記述すればよいのでしょうか。 よろしくお願いします。

  • Access にて DISTINCROW を使用した INSERT SELECT

    お世話様です。 Access2003 VBAにて、DoCmd.RunSQLを使用してSQL文を流す際、 普通のINSERT-SELECT文はOKですが、 そのSELECT文にDISTINCROW句を使用していると、 数百件程度のSELECT結果しかINSERTできません。 本当は数千件のSELECT結果をINSERTしたいのですが、 これを実行した場合、エラーにもならず、1レコードもINSERTされません。 ためしに、DINSTINCTROWではなく、SQL文を変更してDISTINCTにしてみたところ、 2000件以上でもINSERTできました。 DISTINCROW句を使用して数千件でもINSERTできる方法はあるでしょうか? ちなみにSELECT単体ですと、DISTINCTROWを使用していながら、 数千件でも結果を表示できます。 SQL例: str_SQL = " INSERT INTO 結果テーブル(フィールド1, フィールド2, フィールド3)  SELECT DISTINCTROW A.項目1, A.項目2, B.項目1  FROM テーブル1 A, テーブル2 B  (WHERE句はあってもなくても現象変わらず)  ORDER BY A.項目4 ASC, A.項目5 ASC " DoCmd.RunSQL (str_SQL) よろしくお願いいたします。

  • アクセス クエリ-について

    テーブルには、 フィールド1 ------------------ エクセルaaa aaaエクセルaaa aaaエクセル ------------------ というレコードが入っていて、 ------------------------------------------------------ UPDATE テーブル1 SET テーブル1.フィールド1 = "Excel" WHERE (((テーブル1.フィールド1) Like "*エクセル*")); ------------------------------------------------------ という更新クエリ作り、実行すると、テーブルのデータが フィールド1 ------------------ Excel Excel Excel ------------------ になってしまいます。 やりたい事は、 フィールド1 ------------------ Excelaaa aaaExcelaaa aaaExcel ------------------ にしたいのですが、更新クエリじゃ無理なのでしょうか? 手動でテーブルで検索ダイアログを開いてフィールドの一部分のみ置換するしかないのですか? 最終的には、 ------------------------------------------------------ Sub 更新クエリ() Dim cn As New ADODB.Connection Dim rs As New ADODB.Recordset Dim 置換前 As String Dim 置換後 As String Dim SQL As String cn.Open "Provider = Microsoft.ACE.OLEDB.12.0;" & "Data Source= " & CurrentProject.FullName rs.Open "T置換", cn, adOpenKeyset, adLockOptimistic For i = 1 To rs.RecordCount 置換前 = rs("置換前") 'エクセル 置換後 = rs("置換後") 'Excel SQL = "UPDATE テーブル1 SET テーブル1.フィールド1 = ""Excel"" WHERE (((テーブル1.フィールド1) Like ""*エクセル*""));" DoCmd.RunSQL SQL rs.MoveNext Next rs.Close: Set rs = Nothing cn.Close: Set cn = Nothing End Sub ------------------------------------------------------ のようにして、置換用テーブルのレコードを一つ一つ取得して、 テーブル1の値を置換していきたいのです。 何か対策があればご回答よろしくお願いします。

  • MSアクセス SQLの書き方(UPDATE)

    MSアクセス2010 テーブルA フィールドA=テキスト型(4文字) テーブルB フィールドA=テキスト型(2文字) フィールドB=Yes/No型 テーブルBの2文字が、テーブルAの4文字に含まれていたら、テーブルBの全てのレコードのYes/No型をTrueにしたい。 rs.MoveNextでループを使わず一括でする方法はないですか? DoCmd.RunSQL "UPDATE テーブルB SET フィールドB=True WHERE (テーブルAの文字にテーブルBの文字が含まれていたら) みたいな感じで。

  • Excel2000でのVBAでの改行の置換方法

    Excel2000でVBAを利用しています。 Dim buf As string buf = "あいうえお" buf = Replace(buf, Chr(10), Chr(13) & Chr(10)) Excel2007では上記のプログラムで「あいうえお」の間に入っている、 改行コード\nを\r\nに置換することができたのですが、 Excel2000では上記のコマンドで置換ができませんでした。 なんでも良いので、何か助言頂けると嬉しいです。 答えでもなくても良いのでなんでも思いついた事をお願い致します。

  • リッチテキストボックスの改行挿入について

    初めまして。Access初心者のものです。 下記リッチテキストボックスがフォーム上に2つあります。 →TextBox1 (連結)     連結先のメモ型フィールドの設定は、リッチテキストに設定してあります。 →TextBox2 (非連結) 下記、VBAを記述しましたところ、改行がうまくされず困っています。 TextBox1 = 変数 & "入力しました。" & Time & Chr(13) & Chr(10) & _ "----------------------------------" & Chr(13) & Chr(10) & _ TextBox2 & Chr(13) & Chr(10) & Chr(13) & Chr(10) & _ TextBox1 TextBox2 = "" リッチテキストボックスに格納されるデータは、下記のようになります。 変数 入力しました。 17:00:00---------------------------------- TextBox2 TextBox1 希望は、下記のようにデータを格納させたいです。 変数 入力しました。 17:00:00 (改行あり) ----------------------------------(改行あり) TextBox2(改行あり) (改行あり) TextBox1 解決策がありましたら、ご教授頂ければ幸いです。 よろしくお願いいたします。

  • Excelで改行が含まれたフィールドをcsvに変換する際改行を取る方法を教えてください

    ExcelをCSVファイルにする必要があり、レコードの形式を "aaa","bbb","ccc"改行コード にしたいいと考えております。(それぞれのフィールドに改行コードは不可) Excelファイル時に、改行を置換(Ctrl+JをNULLで置換)しCSVで保存しエディタで見ると改行が残っています。(CR-LFがCRに置換されているため) 使用しているエディタはEmエディタです。 Accessでインポートしたのちtxtでエクスポートしても結果は一緒でした。 フィールド内の改行だけを取る方法はありますでしょうか。

専門家に質問してみよう