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