VB程序员博客
08 29th, 2010
想请教一下各位:
我在form_load里的时候设定了 set dtpicker.datarouse=adodc1
dapicker.datafileds="日期"
为什么我做了个关闭的按钮 点关闭的时候里面设定 if adodc1.recordset.recordcount=0 then
set dtpicker.datarouse=nothing
dtpicker.datafields=""
结果会报错?实时错误545 不能绑定到字段或数据成员“日期”
不清楚怎么办,不过为什么dtp要绑定。
select,以后 value = 不就行了吗。
VB datagrid绑定了adodc.修改了datagrid数据后能不能不更新.具体代码
网上搜过,不绑定可以,怎么实现.
Private Sub Command1_Click()
Dim con As ADODB.Connection
Set con = New ADODB.Connection
con.ConnectionString = "Driver={sql server};server=Mserver;uid=sa;pwd=future?20061101;database=AIS20080319083923"
con.Open
fid = Text1.Text
Adodc1.ConnectionString = "Driver={sql server};server=Mserver;uid=sa;pwd=future?20061101;database=AIS20080319083923"
Adodc1.RecordSource = "select b.fShortNumber,b.fname,b.fmodel,a.FGMPBatchNO,unname=d.fname,a.FAuxQty from ICMO a inner join t_icitem b on b.fitemid=a.fitemid inner join t_UnitGroup c on b.funitgroupid=c.funitgroupid inner join t_measureunit d on d.funitgroupid=b.funitgroupid and d.fmeasureunitid=a.funitid where FBillNo='" & fid & "'"
Adodc1.Refresh
Set DataGrid1.DataSource = Adodc1
h = con.Execute("select t_Department.Fname,t_Department.FItemID from ICMO inner join t_Department on ICMO.FWorkShop=t_Department.FItemID where FBillNo='" & fid & "'")
Label8.Caption = h(0)
End Sub
10 30th, 2008
没用过这个,以前都是用MSHFlexGrid可以用ADO
现在我要用DataGrid实现和SQL数据库绑定修改起来比较方便,但是在上面的某些操作又要用SQL语句执行,具体该怎么使用这个控件,最好有例子代码
只要把datagrid的datasource属性选择 adodc1控件的名称即可!
datagrid.datasource=adodc1
我在数据库中的数是:32.04,但是在MSHFlexGrid显示却变成了32.040001
70.08 70.080002
41.04 41.040001
96.59 96.599998
都是类似于这样的结果,这是怎么回事呢????????????
这个语句我没太看懂,能写详细点吗????
请问有人知道MSHFlexGrid显示要怎么设置吗??急!!
不可能出现这样的问题啊,我是没见过
用Format(MshFlexGrid1.TextMatrix(1, 1),".00")格式化一下也就行(循环处理),不过感觉应该没1楼(没试验)的效率高
SQL联机丛书的帮助:
Transact-SQL 参考
CAST 和 CONVERT
将某种数据类型的表达式显式转换为另一种数据类型。CAST 和 CONVERT 提供相似的功能。
语法
使用 CAST:
CAST ( expression AS data_type )
使用 CONVERT:
CONVERT (data_type[(length)], expression [, style])
参数
expression
是任何有效的 Microsoft⮠SQL Server™ 表达式。有关更多信息,请参见表达式。
data_type
目标系统所提供的数据类型,包括 bigint 和 sql_variant。不能使用用户定义的数据类型。有关可用的数据类型的更多信息,请参见数据类型。
length
nchar、nvarchar、char、varchar、binary 或 varbinary 数据类型的可选参数。
style
日期格式样式,借以将 datetime 或 smalldatetime 数据转换为字符数据(nchar、nvarchar、char、varchar、nchar 或 nvarchar 数据类型);或者字符串格式样式,借以将 float、real、money 或 smallmoney 数据转换为字符数据(nchar、nvarchar、char、varchar、nchar 或 nvarchar 数据类型)。
SQL Server 支持使用科威特算法的阿拉伯样式中的数据格式。
在表中,左侧的两列表示将 datetime 或 smalldatetime 转换为字符数据的 style 值。给 style 值加 100,可获得包括世纪数位的四位年份 (yyyy)。
不带世纪数位 (yy) 带世纪数位 (yyyy)
标准
输入/输出**
- 0 或 100 (*) 默认值 mon dd yyyy hh:miAM(或 PM)
1 101 美国 mm/dd/yyyy
2 102 ANSI yy.mm.dd
3 103 英国/法国 dd/mm/yy
4 104 德国 dd.mm.yy
5 105 意大利 dd-mm-yy
6 106 - dd mon yy
7 107 - mon dd, yy
8 108 - hh:mm:ss
- 9 或 109 (*) 默认值 + 毫秒 mon dd yyyy hh:mi:ss:mmmAM(或 PM)
10 110 美国 mm-dd-yy
11 111 日本 yy/mm/dd
12 112 ISO yymmdd
- 13 或 113 (*) 欧洲默认值 + 毫秒 dd mon yyyy hh:mm:ss:mmm(24h)
14 114 - hh:mi:ss:mmm(24h)
- 20 或 120 (*) ODBC 规范 yyyy-mm-dd hh:mm:ss[.fff]
- 21 或 121 (*) ODBC 规范(带毫秒) yyyy-mm-dd hh:mm:ss[.fff]
- 126(***) ISO8601 yyyy-mm-dd Thh:mm:ss:mmm(不含空格)
- 130* 科威特 dd mon yyyy hh:mi:ss:mmmAM
- 131* 科威特 dd/mm/yy hh:mi:ss:mmmAM
* 默认值(style 0 或 100、9 或 109、13 或 113、20 或 120、21 或 121)始终返回世纪数位 (yyyy)。
** 当转换为 datetime 时输入;当转换为字符数据时输出。
*** 专门用于 XML。对于从 datetime 或 smalldatetime 到 character 数据的转换,输出格式如表中所示。对于从 float、money 或 smallmoney 到 character 数据的转换,输出等同于 style 2。对于从 real 到 character 数据的转换,输出等同于 style 1。
重要 默认情况下,SQL Server 根据截止年份 2049 解释两位数字的年份。即,两位数字的年份 49 被解释为 2049,而两位数字的年份 50 被解释为 1950。许多客户端应用程序(例如那些基于 OLE 自动化对象的客户端应用程序)都使用 2030 作为截止年份。SQL Server 提供一个配置选项("两位数字的截止年份"),借以更改 SQL Server 所使用的截止年份并对日期进行一致性处理。然而最安全的办法是指定四位数字年份。
当从 smalldatetime 转换为字符数据时,包含秒或毫秒的样式将在这些位置上显示零。当从 datetime 或 smalldatetime 值进行转换时,可以通过使用适当的 char 或 varchar 数据类型长度来截断不需要的日期部分。
下表显示了从 float 或 real 转换为字符数据时的 style 值。
值 输出
0(默认值) 最大为 6 位数。根据需要使用科学记数法。
1 始终为 8 位值。始终使用科学记数法。
2 始终为 16 位值。始终使用科学记数法。
在下表中,左列表示从 money 或 smallmoney 转换为字符数据时的 style 值。
值 输出
0(默认值) 小数点左侧每三位数字之间不以逗号分隔,小数点右侧取两位数,例如 4235.98。
1 小数点左侧每三位数字之间以逗号分隔,小数点右侧取两位数,例如 3,510.92。
2 小数点左侧每三位数字之间不以逗号分隔,小数点右侧取四位数,例如 4235.9819。
返回类型
返回与 data type 0 相同的值。
decimal 和 numeric
带定点精度和小数位数的 numeric 数据类型。
decimal[(p[, s])] 和 numeric[(p[, s])]
定点精度和小数位数。使用最大精度时,有效值从 - 10^38 +1 到 10^38 - 1。decimal 的 SQL-92 同义词是 dec 和 dec(p, s)。
p(精度)
指定小数点左边和右边可以存储的十进制数字的最大个数。精度必须是从 1 到最大精度之间的值。最大精度为 38。
s(小数位数)
指定小数点右边可以存储的十进制数字的最大个数。小数位数必须是从 0 到 p 之间的值。默认小数位数是 0,因而 0 <= s <= p。最大存储大小基于精度而变化。
精度 存储字节数
1 - 9 5
10-19 9
20-28 13
29-38 17
谢谢!!我用的这个方法,然后刷新了一下,已经可以了,非常感谢!!
08 26th, 2008
语言是VB。用DATA控件连接ACCESS数据库,数据库中图片只是存储了路径,picture如何绑定数据库里的图片路径这个字段?并且绑定图片路径这个字段后怎样跟随其他记录移动啊!例如:我想查询名字是张三记录,text1显示张三年龄,text2显示张三班级…….picture显示张三的图片;我要查询名字是李四的记录,text1显示李四年龄,text2显示李四的班级……..picture显示李四的图片………………?新手上路,谢谢啊!
可是如何让图片路径这个字段后跟随其他记录移动呢?
Private Sub Data1_Reposition()
Picture1.picture=LoadPicture(data1.fields("图片"))
End Sub
大概就是这样子吧,好久不用Data控件了
这个代码没测试
MSDN对Data1_Reposition事件的解释:
当加载一个 Data 控件时,Recordset 对象中的第一条记录成为当前记录,会发生 Reposition 事件。无论何时只要用户单击 Data 控件上某个按钮,进行记录间的移动,或者使用了某个 Move 方法(如 MoveNext),Find 方法(如 FindFirst),或任何其它改变当前记录的属性或方法,在每条记录成为当前记录以后,均会发生 Reposition 事件。
Picture1.picture=LoadPicture(data1.fields("图片"))
这个调试时说方法不正确!不管怎样还是很感谢你啊!
Private Sub Data1_Reposition()
Picture1.Picture = LoadPicture(Data1.Recordset.Fields("图片"))
End Sub
你的字段名未必是"图片",按你的实际情况该
谢谢你,虽然不是这样做的,仍然谢你!呵呵!
谢谢你,虽然不是这么做的,仍然感谢你!呵呵!
07 17th, 2008
strSQl = "select * from students"
Dim rst_student2 As New ADODB.Recordset
rst_student2.Open strSQl, cnn, adOpenKeyset, adLockOptimistic
If rst_student2.RecordCount > 0 Then
accout_array.ReDim 0, rst_student2.RecordCount - 1, 0, 4
TDBGrid1.Close True
i = 0
rst_student2.MoveFirst
Do While Not rst_student2.EOF
accout_array(i, 0) = rst_student2!stuId
accout_array(i, 1) = rst_student2!stuName
accout_array(i, 2) = rst_student2!sex
accout_array(i, 3) = rst_student2!phone
accout_array(i, 4) = rst_student2!address
i = i + 1
rst_student2.MoveNext
Loop
TDBGrid1.Array = accout_array
TDBGrid1.ReBind
TDBGrid1.Refresh
在窗体上TDBGrid1显示不了数据。
07 5th, 2008
就是绑定了DataCombo和Adodc,但是我想在里面加一条我自己想加的记录。
例如:显示了
大牛
二牛
三牛
但是我想显示成
无
大牛
二牛
三牛
不知道DataCombo有没有可能实现这个功能,数据库已经固定了,不能修改了。
07 5th, 2008
就是绑定了DataCombo和Adodc,但是我想在里面加一条我自己想加的记录。
例如:显示了
大牛
二牛
三牛
但是我想显示成
无
大牛
二牛
三牛
不知道DataCombo有没有可能实现这个功能,数据库已经固定了,不能修改了。
06 18th, 2008
cndb.Open CnString
strsql = "select * from style"
rs.Open strsql, cndb
接下去用什么语句来 绑定 sql语句的结果集并在vsflexgrid显示出来呢?
请大家给点主意好吗?
看看有没有 Bind 方法,做个应该看看控件帮助,里面应该有描述的。
Set MSFlexGrid1.DataSource = rs
各位 。。。不行啊。。Set MSFlexGrid1.DataSource = rs 提示 对象不支持该属性或方法
使用MSHFlexGrid控件
用 vsflexgrid 不行吗?
你用的到底是vsflexgrid还是MSFlexGrid
MSFlexGrid不能绑ADO,用MSHFlexgrid
我要用vsflexgrid 来进行绑定rs的结果集
不能用ado应该用dao
什么意思的啊??
vsflexgrid 没有 datasource这个属性。。还有什么办法来进行绑定吗?
要用vsflexgrid(oledb)控件,才会有绑定功能
set vsflexgrid.datasource=oRst
可是 就是vsflexgrid就没有datasource这个属性啊。。所以无法运行vsflexgrid.datasource=oRst
要用vsflexgrid(oledb)控件
要用vsflexgrid(oledb)控件
要用vsflexgrid(oledb)控件
那就通过循环语句写入空间吧
谢谢大家。。呵呵。。。。。。。。。。。。。。
05 20th, 2008
Dim strsql As String
strsql = "select * from 合同表 where '" & Trim(cobSerch.Text) & "'='" & Trim(txtSerchz.Text) & "'"
dbConn.Execute strsql
点击搜索,把查找的数据绑定到datagrid控件上,下面该怎么写,谢谢
strsql = "select * from 合同表 where '" & Trim(cobSerch.Text) & "'='" & Trim(txtSerchz.Text) & "'"
Conn.Open
Rs.CursorLocation = adUseClient
Rs.Open strsql,Conn, adOpenStatic, adLockOptimistic
Set DataGrid.DataSource = Rs
学习
ref: m1 :)
Set Me.DataGrid1.DataSource = Rs
- VBScript code
-
Set Me.DataGrid1.DataSource = Rs