| タイトル | : 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 
 
 |