VB6.0中透过临时表用DataGrid向数据库中添加数据

VB6.0中通过临时表用DataGrid向数据库中添加数据
如题,专卖店的办卡方案,一个方案中包括多于一种商品,想用DataGrid通过建立临时表的方式向方案库中添加新方案。保存的时候可以,但是单击取消按钮的时候总是提示如下。VB6.0中透过临时表用DataGrid向数据库中添加数据
代码贴上。
Option Explicit

Private Sub Command1_Click()
    On Error Resume Next
    Adodc1.Recordset.MoveFirst
    'OpenDBFile
    While Not Adodc1.Recordset.EOF
        SQL = "INSERT INTO 办卡方案(方案编号,方案说明,产品编号,产品名称,单位,记账价格,顾客价格,产品数量,积分)VALUES("""
        SQL = SQL & Text1.Text & ""","""
        SQL = SQL & Text2.Text & ""","""
        SQL = SQL & DataGrid1.Columns(0).Text & ""","""
        SQL = SQL & DataGrid1.Columns(1).Text & ""","""
        SQL = SQL & DataGrid1.Columns(2).Text & ""","""
        SQL = SQL & DataGrid1.Columns(3).Text & ""","""
        SQL = SQL & DataGrid1.Columns(4).Text & ""","""
        SQL = SQL & DataGrid1.Columns(5).Text & ""","""
        SQL = SQL & DataGrid1.Columns(6).Text & """)"
        
        '执行SQL语句
        conn.Execute SQL
        Adodc1.Recordset.MoveNext
    Wend
    'CloseDBFile
    Unload Me
    frmBanka.Adodc1.Refresh
        
End Sub

Private Sub Command2_Click()
    Unload Me
End Sub

Private Sub DataGrid1_KeyDown(KeyCode As Integer, Shift As Integer)
    Dim i As Integer
    i = DataGrid1.Col
    If KeyCode = 13 Then
        If i = 6 Then
            DataGrid1.Row = DataGrid1.Row + 1
        End If
    End If
End Sub

Private Sub Form_Load()
    conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\dat\study.mdb" & ";Mode=ReadWrite;Persist Security Info=False"
    conn.Open
    conn.Execute "create table temp(产品编号 string,产品名称 string,单位 string,记账价格 string,顾客价格 string,产品数量 string,积分 string)"
    SQL = "SELECT * FROM temp"
    Adodc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\dat\study.mdb" & ";Mode=ReadWrite;Persist Security Info=False"
    Adodc1.RecordSource = SQL
    Adodc1.Refresh
    Set DataGrid1.DataSource = Adodc1
    DataGrid1.AllowAddNew = True
    DataGrid1.Refresh
    Liekuan
End Sub

Private Sub Form_Unload(Cancel As Integer)
    'On Error Resume Next
    conn.Execute "drop table temp"
    conn.Close
End Sub

Private Sub Liekuan()
    On Error Resume Next
    DataGrid1.Columns(0).Width = 800
    DataGrid1.Columns(1).Width = 1800
    DataGrid1.Columns(2).Width = 800
    DataGrid1.Columns(3).Width = 800
    DataGrid1.Columns(4).Width = 800
    DataGrid1.Columns(5).Width = 800
    DataGrid1.Columns(6).Width = 800
End Sub


------解决思路----------------------
Private Sub Form_Unload(Cancel As Integer)
    '先解除绑定'
    Set DataGrid1.DataSource = Nothing
    DataGrid1.ReBind
    Adodc1.ConnectionString = vbNullString
    Adodc1.RecordSource = vbNullString
    On Error Resume Next
    Adodc1.Refresh
    On Error GoTo 0
    '再删表'
    conn.Execute "drop table temp"
    conn.Close
End Sub