2017-02-16 17 views
0

私が継承した一連のアクセスクエリに問題があります。以前は意図したとおりに以下のVBAコードが働いたが、私はいくつかのフィルタ条件を変更する(変更日が新しい年を反映する範囲)となりました次のコードで問題に実行しています:最初のテーブルのコンバインを要約するとAccess 2010 - VBAを使用して番号フィールドをテキストに変換している

'1) Make Leaks LMS Date from FMSPROD 
DoCmd.OpenQuery "LeakLMSDateMkTbl" 
DoEvents 

'Change Leak number data type from number to text. 
dbs.Execute "ALTER TABLE LeaksLMSDate " & "ALTER COLUMN LEAK_NO CHAR(20);" 
dbs.Close 

'2) Make Leaks All Orders Table 
DoCmd.OpenQuery "LeaksMkTbl" 
DoEvents 

LEAK_NOフィールドを識別子として使用して、1つのデータベースのいくつかのテーブル。そのデータベースでは、データは数値として格納されます。 2番目の表は、同じ情報がテキストとして格納されている別のデータベースのフィールドを取り込みます。中央の変換コードを挿入してフィールドタイプを変更し、LEAK_NOフィールドを数値からテキストに変換しましたが、機能していないように見えました。

関連するサブを実行すると、最初のテーブルが作成されますが、実行時エラー3615タイプの不一致がステップ2で発生します.LeaksLMSDateテーブルを見ると、LEAK_NOフィールドは数。この時点で、仲介コードが意図したとおりに機能していない理由について私は困惑しています。どんな助けもありがとう。

+0

日付処理のために「テーブル変更」を実行しないでください。 LeaksLMSDateを読み込み、必要な値の型に変換するクエリを作成します。その後、この照会を使用してさらに処理します。 – Gustav

答えて

0

クエリ1のテーブル作成クエリではなく、追加クエリを使用してみることができます。これを行うには、いくつか必要な作業があります。最初に、適切なデータ型を前面にしてターゲット表の列を定義します。第2に、このプロセスを複数回実行すると仮定すると、(以前の実行からデータを消去するために)追加クエリの前にDeleteクエリを挿入する必要があります。その後、ALTER TABLEコマンドを取り除くことができます。

関連する問題