質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Access

Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。

Q&A

3回答

1569閲覧

文字列から指定の文字だけを削除したい

romchro

総合スコア2

CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Access

Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。

0グッド

0クリップ

投稿2020/11/06 07:38

いつもお世話になってます。

全体像としては、CSVデータをaccessにインポートし、
検索フォームで伝票バーコードを読み込んで、
ヒットする番号のデータ詳細を表示する、というのを作っています。

バーコードリーダーではハイフンなしの12桁でしか読み込めないことを後で知って、
テーブル側の伝票番号のハイフンを取りたいと思っています。

〇〇〇〇-〇〇〇〇-〇〇〇〇
現段階の[伝票番号]フィールドは、こういう形の文字列なんですが、
どういう方法でハイフンだけを削除すればいいでしょうか。
また、どの段階で文字列を整頓すればいいのかもちょっと混乱してます。

初心者ゆえに汚いコードですが、以下が読込時の記述です。

'[ファイルを開く]ダイアログボックスを表示する boolResult = dlg.Show If boolResult Then 'CSVを読み込む DoCmd.TransferText acImportDelim, , "T_CSV読込", dlg.SelectedItems(1), True '重複チェック Set rst = dbs.OpenRecordset("T_CSV読込", dbOpenDynaset) Do Until rst.EOF If DCount("伝票番号", "T_CSV保存", "伝票番号 = '" & rst![伝票番号] & "'") > 0 Then MsgBox ("重複データがあります。読込を中止します。伝票番号" & rst![伝票番号]) rst.Close dbs.Close Exit Sub End If rst.MoveNext Loop rst.Close 'テーブルから項目の削除 sTb = "INSERT INTO T_CSV保存 ( 受付日, 伝票番号, 商品区分, サイズ, 個数, 運賃合計 )" _ & "SELECT T_CSV読込.[受付日], T_CSV読込.[伝票番号], T_CSV読込.[商品区分], T_CSV読込.[サイズ]," _ & "T_CSV読込.[個数], T_CSV読込.[運賃合計]," _ & "FROM T_CSV読込;" dbs.Execute sTb dbs.Close '読込テーブルを削除する DoCmd.DeleteObject acTable, "T_CSV読込" Else MsgBox "キャンセルされました。" End If rst.Close dbs.Close End Sub

参考サイトなどでもありがたいです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mdj

2020/11/06 08:18

「vba 文字列 置換」で検索してみましょう
guest

回答3

0

イメージ説明

投稿2020/11/10 08:25

syousuke.33

総合スコア312

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

バーコードなので、正規表現で数値以外を消去する方法でもよいと思います。

VBA

1Dim reg As Object 2Set reg = CreateObject("VBScript.RegExp") 3 4reg.Pattern = "\D" '数値以外 5reg.Global = True 6 7Debug.Print reg.Replace("1234-5678-1234", "")

投稿2020/11/06 23:23

TanakaHiroaki

総合スコア1063

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

replaceでいいと思う

投稿2020/11/06 08:42

sousuke

総合スコア3830

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問