タイトル | : SQLでテーブル間でフィールドコピーするには? |
記事No | : 10711 |
投稿日 | : 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
|