标题:[求助]DataGrid控件
只看楼主
terry_vicky
Rank: 1
等 级:新手上路
帖 子:70
专家分:0
注 册:2006-12-15
 问题点数:0 回复次数:6 
[求助]DataGrid控件

我把信息插入完之后怎么DataGrid里面没显示出来,我把窗口关了,在打开一边才能显示出来
我想插入完数据之后DataGrid里面就能显示出来,下面是我的代码,请帮我看看怎么改才能实现,需要怎么改
Option Explicit

Dim db As Connection
Dim rs As Recordset

Private Sub Command1_Click()
Dim aa(6) As String
Dim conString As String
Dim bb As Double

aa(1) = Trim(Text1.Text)
aa(2) = Trim(Text2.Text)
aa(3) = Trim(Text4.Text)
aa(4) = Trim(Text5.Text)
aa(5) = Trim(Text6.Text)
aa(6) = Trim(Text7.Text)
bb = Val(Text3.Text)

If aa(1) = "" Then
MsgBox "没输入产品名称!", vbExclamation + vbSystemModal, "添加盘店货物单"
Exit Sub
End If


db.Execute ("insert 总库存表(款号,种类,品名,规格,单位,数量,首次入库日期,盘点日期,盘点人,备注)values('" & aa(6) & _
"','" & aa(3) & "','" & aa(1) & "','" & aa(2) & "','" & Combo1 & "','" & bb & _
"','" & DTPicker1 & "','" & DTPicker2 & "','" & aa(4) & "','" & aa(5) & "')")


MsgBox "保存成功!", vbInformation + vbSystemModal, "添加盘店货物单"
'Unload Me
End Sub

Private Sub Command2_Click()
Unload Me
End Sub

Private Sub Form_Load()
Dim conString As String
DTPicker1 = Date
DTPicker2 = Date
Set db = New Connection
conString = "Provider=SQLOLEDB.1;User ID=sa;Password=;" & _
"DataSource=(local);Database=ZLXT;Persist Security Info=False"

db.ConnectionString = conString
db.Open conString
Set rs = New Recordset
If rs.State <> adStateClosed Then rs.Close

rs.CursorLocation = adUseClient

rs.Open "select * from 总库存表", db, adOpenKeyset, adLockPessimistic

Set DataGrid1.DataSource = rs

End Sub

Private Sub Form_Unload(Cancel As Integer)
Set db = Nothing
End Sub

搜索更多相关主题的帖子: DataGrid 控件 Dim Trim String 
2007-01-25 14:52
zsolong
Rank: 1
等 级:新手上路
威 望:1
帖 子:193
专家分:0
注 册:2006-12-15
得分:0 
要加一句:DataGrid1.Refresh

2007-01-25 14:57
terry_vicky
Rank: 1
等 级:新手上路
帖 子:70
专家分:0
注 册:2006-12-15
得分:0 
Set DataGrid1.DataSource = rs
是加在这句话下面么,不好用啊
2007-01-25 15:03
zsolong
Rank: 1
等 级:新手上路
威 望:1
帖 子:193
专家分:0
注 册:2006-12-15
得分:0 

把下面这一段写到一个函数里面,然后再FORM_Load的时候call这个函数,在Inset结束之后再Call一下这个函数就可以了!

Dim conString As String
DTPicker1 = Date
DTPicker2 = Date
Set db = New Connection
conString = "Provider=SQLOLEDB.1;User ID=sa;Password=;" & _
"DataSource=(local);Database=ZLXT;Persist Security Info=False"

db.ConnectionString = conString
db.Open conString
Set rs = New Recordset
If rs.State <> adStateClosed Then rs.Close

rs.CursorLocation = adUseClient

rs.Open "select * from 总库存表", db, adOpenKeyset, adLockPessimistic

Set DataGrid1.DataSource = rs


[此贴子已经被作者于2007-1-25 15:15:44编辑过]


2007-01-25 15:05
terry_vicky
Rank: 1
等 级:新手上路
帖 子:70
专家分:0
注 册:2006-12-15
得分:0 
还是关了在开一边才能显示啊
2007-01-25 15:11
zsolong
Rank: 1
等 级:新手上路
威 望:1
帖 子:193
专家分:0
注 册:2006-12-15
得分:0 

看4楼修改过的,这下可以了!
你添加完了之后,没有去把相应的记录查询出来再显示到Grid里面,他当然不会显示出来了阿。
之所以是要关了再打开就能稀释出来,使因为你在Form_Load的时候有Select的查询语句,把添加进取的记录查询出来了,所以在你Inset之后,在报Message之前,再去查询一下表里面的记录,就可以了!

另外你的代码还可以优化,把连接数据库的部分放到一个函数里面,只在Form_Load的时候调用。把查询的部分再放到另外一个函数里面,这样就可以在需要的地方去调用,不用每次都去重新连数据库,耗费时间!

[此贴子已经被作者于2007-1-25 15:27:21编辑过]


2007-01-25 15:18
terry_vicky
Rank: 1
等 级:新手上路
帖 子:70
专家分:0
注 册:2006-12-15
得分:0 
好了,谢谢你啊
2007-01-25 15:33



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-118060-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.212503 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved