No.1ベストアンサー
- 回答日時:
<Test>
ID___会員番号
1____1
2____2
3____3
4____4
<Test>
ID___会員番号
1____0001
2____0002
3____0003
4____0004
と、インポート後に一括変換する方法を2つ示します。
************************************************************************
回答1、更新クエリの利用。
************************************************************************
<クエリ1>
_______フィールド:会員番号
________テーブル:Test
レコードの更新:Format(会員番号, "0000")
_______抽出条件:
___________または:
[SQLビュー]
UPDATE Test SET 会員番号 = Format(会員番号,"0000");
*********************************************************************************************
回答2、SQL文実行関数の利用。
*********************************************************************************************
[イミディエイト]
? CnnExecute("UPDATE Test SET 会員番号 = Format(会員番号,'0000') WHERE LEN(会員番号 & '')<>4;")
True
もちろん、標準モジュールに、次のような自作関数を追加する必要があります。
多分、CnnExecute関数を使えば、一連の処理を自動化できるでしょう。
インポートもコードで実行していればですが・・・。
Public Sub ErrMessage(ByVal CnnErrors As ADODB.Error, ByVal strSQL As String)
MsgBox "ADOエラーが発生しましたので処理をキャンセルします。" & Chr$(13) & Chr$(13) & _
"・Err.Description=" & CnnErrors.Description & Chr$(13) & _
"・Err.Number=" & CnnErrors.Number & Chr$(13) & _
"・SQL State=" & CnnErrors.SQLState & Chr$(13) & _
"・SQL Text=" & strSQL, _
vbExclamation, " ADO関数エラーメッセージ"
End Sub
Public Function CnnExecute(ByVal strSQL As String) As Boolean
On Error GoTo Err_CnnExecute
Dim isOK As Boolean
Dim cnn As ADODB.Connection
isOK = True
Set cnn = CurrentProject.Connection
With cnn
.Errors.Clear
.BeginTrans
.Execute strSQL
.CommitTrans
End With
Exit_CnnExecute:
On Error Resume Next
cnn.Close
Set cnn = Nothing
CnnExecute = isOK
Exit Function
Err_CnnExecute:
isOK = False
If cnn.Errors.Count > 0 Then
ErrMessage cnn.Errors(0), strSQL
cnn.RollbackTrans
Else
MsgBox "プログラムエラーが発生しました。システム管理者に報告して下さい。(CnnExecute)", _
vbExclamation, " 関数エラーメッセージ"
End If
Resume Exit_CnnExecute
End Function
この回答へのお礼
お礼日時:2007/07/10 12:05
おはようございます。
早速のご回答ありがとうございます。
更新クエリ、SQL文実行関数、2つ実行させていただいたのですが、
「レコードでキー違反」のエラーが出てしまいます。
ご教授お願いします。
No.2
- 回答日時:
実行時エラー'-2147467256(80004005)';
インデックス、主キー、またはリレーションシップで値が重複しているので、
テーブルを変更できませんでした。・・・・・
<Test>
ID_____会員番号
1______0001
2______1
仮に[会員番号]がユニークキーであれば、[ID]=2でエラーが発生します。
ですから、通常は、インポートアプリケーションを作成し種々のチェックをします。
※情報が、少ないので、これ位しかエラー要因を思い付きませんでした。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) CSVファイルがカンマ区切りにならない。対処法を教えていただきたいです。 仕事でSMS一斉送信ができ 2 2022/07/01 21:24
- Access(アクセス) access,vbaでフォルダ内のファイルをテーブルにインポート、ファイル名もフィールドに追加したい 1 2022/08/31 11:11
- その他(プログラミング・Web制作) Accessの代わりのノンプログラムデータベース作成 4 2022/10/21 09:26
- その他(データベース) 20万行あるデータを動かしたい 2 2023/06/13 15:21
- Access(アクセス) Accessのリンクテーブルのパスを相対パスにする方法について教えて頂きたいです 1 2023/02/08 13:29
- その他(プログラミング・Web制作) データ解析ソフトRでのファイル入力read.csvがエラーになります 7 2022/03/27 22:11
- Access(アクセス) Accessで作ったデータベースをwebで活用したい 2 2023/06/03 08:49
- Access(アクセス) 本日、会社のパソコンでAccessを開いたとき ウイルス警告のようなものが出ていました。 毎日Acc 3 2022/10/18 23:33
- Excel(エクセル) エクセルでcsvファイルを開いてVBAを使いたい 7 2022/04/28 11:12
- Access(アクセス) スキルシートのエクセルの項目に 2 2023/04/04 22:41
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
コンピュータ
-
Accessのフォームで思った順番...
-
IDの欠番
-
各伝票に対して明細を1行目だけ...
-
2つのテーブルを結合して最大値...
-
文字列のあるキーワードから開...
-
特定条件での連番の振り方を教...
-
Word差し込み印刷 数式について
-
差し込み後、元データを変更し...
-
for whichの使い方
-
Exel VBA 別ブックから該当デ...
-
エクセルで最後の文字だけ置き...
-
フィルターかけた後、重複を除...
-
pythonにてseleniumを使うも、...
-
chatgptでつくってもらったコー...
-
カーソル宣言をIFで分けられま...
-
ある条件の最大値+1を初番する...
-
Access:クエリーにて集計後に...
-
datetime型でNULL値を入れたい。
-
SELECT 文 GROUP での1件目を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
商品番号を入力すると、商品名...
-
2つのテーブルを結合して最大値...
-
コンピュータ
-
Accessのフォームで思った順番...
-
特定条件での連番の振り方を教...
-
各伝票に対して明細を1行目だけ...
-
LEFT JOIN あいまいな外部結合
-
orace SQL文のエラー(ORA-0092...
-
IDの欠番
-
updateでグループ化
-
ACCESSでフォーム上のオブジェ...
-
エクセルでリピート率
-
文字列のあるキーワードから開...
-
Word差し込み印刷 数式について
-
Accessレポート 複数条件での集計
-
アクセスのフォームで連動した...
-
Access 会員番号4桁にする方法
-
ACCESS フォーム入力で...
-
SQL文:ある状態の明細のみを抽...
-
ファイルメーカーpro6で
おすすめ情報