タイトル : SQLでテーブル間でフィールドコピーするには? 投稿日 : 2012/03/06(Tue) 10:51 投稿者 : ペコ
[開発環境] ・Windows7 64Bit ・VisualBasic2008EE ・Access2000 ------------------------------ SQLについて質問です。 テーブル間でのフィールドのコピーを行いたいのですが、 下記のコード(モジュール)を連続的に実行すると コピー先で本来 [フィールドA][フィールドB] AAA BBB AAA BBB AAA BBB となるべきところが [フィールドA][フィールドB] AAA AAA AAA BBB BBB BBB のようにズレてしまいまう上、コピー先ではオートナンバー型のフィールドも中途半端な番号から始まってしまいます。 また、コピーするフィールドによっては 「指定されたデータ量がフィールドサイズを超えています」 といったエラーも発生します。 何が原因かわかりません。 どなたかアドバイスをお願いいたします。 [--- コード ---] Sub DbCopyField(ByVal myFilePath As String, ByVal myExpTableName As String, ByVal myExpFieldName As String, ByVal myImpTableName As String, ByVal myImpFieldName As String) Dim Cn As New System.Data.OleDb.OleDbConnection(Provider & myFilePath) Dim SQLCm As System.Data.OleDb.OleDbCommand = Cn.CreateCommand Try Cn.Open() SQLCm.CommandText = "INSERT INTO " & myImpTableName & "(" & myImpFieldName & ") SELECT " & myExpFieldName & " FROM(" & myExpTableName & ")" SQLCm.ExecuteNonQuery() Cn.Close() Catch ex As Exception MessageBox.Show(ex.Message) Cn.Close() End Try End Sub |