Dim rsMedia As New ADODB.Recordset'定义rsMedia 为窗体级无源recordset对象
Private Sub Form_Load()
DTPicker1.Value = CStr(Date)
'On Error Resume Next
rsMedia.Fields.Append "条形码", adVariant, , adFldMayBeNull + adFldIsNullable + adFldUpdatable
rsMedia.Fields.Append "商品类别", adVariant, , adFldMayBeNull + adFldIsNullable + adFldUpdatable
rsMedia.Fields.Append "商品名称", adVariant, , adFldMayBeNull + adFldIsNullable + adFldUpdatable
rsMedia.Fields.Append "销售单价", adVariant, , adFldMayBeNull + adFldIsNullable + adFldUpdatable
rsMedia.Fields.Append "销售数量", adVariant, , adFldMayBeNull + adFldIsNullable + adFldUpdatable
rsMedia.Fields.Append "销售金额", adVariant, , adFldMayBeNull + adFldIsNullable + adFldUpdatable
rsMedia.Fields.Append "销售时间", adVariant, , adFldMayBeNull + adFldIsNullable + adFldUpdatable
rsMedia.Fields.Append "退货时间", adVariant, , adFldMayBeNull + adFldIsNullable + adFldUpdatable
rsMedia.Fields.Append "是否归还货架", adVariant, , adFldMayBeNull + adFldIsNullable + adFldUpdatable
' rsMedia.CursorLocation = 0
rsMedia.Open
End Sub'给无源recordset对象追加字段'Command1_Click事件中以text1.text和dtpicker1的值为条件查询数据库,并将查询到的记录addnew到
'rsMedia对象中
Private Sub Command1_Click()
Dim dateCheck1, dateCheck2 As Date
dateCheck1 = CDate(DTPicker1.Value & " 00:00:00")
dateCheck2 = CDate(DTPicker1.Value & " 23:59:59")
a$ = Trim(Text1)
If a$ = "" Then
MsgBox "请输入条形码", 0, "华庭销售"
Text1.Text = ""
Text1.SetFocus
Exit Sub
End If
strSQL$ = "select number,class,itemNwme,price ,quantity,singleAmout,dealDate from FinishedDEal where number='" & a$ & "' and dealDate between #" & dateCheck1 & "# and #" & dateCheck2 & "# order by dealDate"
Dim connQuery As New ADODB.Connection
connQuery.CursorLocation = adUseClient
Dim rsQuery As New ADODB.Recordset
Call PubConnSub(connQuery, rsQuery, strSQL$, 3, 3)
If rsQuery.EOF Then
MsgBox DTPicker1.Value & "这天没有出售过[*条形码*]为" & a$ & "的商品", 0, "华庭销售"
rsQuery.Close
Set rsQuery = Nothing
connQuery.Close
Set connQuery = Nothing
Else
rsQuery.MoveFirst
While Not rsQuery.EOF
rsMedia.AddNew
For j = 0 To 6 '这7个字段的从查询中得到的,rsMedida剩下的两个字段由下面语句 '赋值
rsMedia(j) = rsQuery(j)
Next j
rsMedia(7) = Now
If Check1.Value Then
rsMedia(8) = True
Else
rsMedia(8) = False
End If
'rsMedia.Update
rsQuery.MoveNext
' rsMedia.MoveNext
Wend
rsMedia.UpdateBatch
'+++++++++++++++++++++++++++++++++++++++++++++
'这里测试rsMedia中的值 打印测试
rsMedia.MoveFirst
While Not rsMedia.EOF
For i = 0 To rsMedia.Fields.Count - 1
Debug.Print CStr(rsMedia(i))
Next i
Debug.Print
Debug.Print
rsMedia.MoveNext
Wend
'测试结果:rsMedia中没有值,也就是说 rsMedia.UpdateBatch没起作用
'++++++++++++++++++++++++++++++++++++++++++++++
Set DataGrid1.DataSource = rsMedia
DataGrid1.Refresh
End If
End Sub由于相同的帖子已经发了多天还是没有高手愿意指点,所以提分再发,希望可以得到解决,请多多指教!
Private Sub Form_Load()
DTPicker1.Value = CStr(Date)
'On Error Resume Next
rsMedia.Fields.Append "条形码", adVariant, , adFldMayBeNull + adFldIsNullable + adFldUpdatable
rsMedia.Fields.Append "商品类别", adVariant, , adFldMayBeNull + adFldIsNullable + adFldUpdatable
rsMedia.Fields.Append "商品名称", adVariant, , adFldMayBeNull + adFldIsNullable + adFldUpdatable
rsMedia.Fields.Append "销售单价", adVariant, , adFldMayBeNull + adFldIsNullable + adFldUpdatable
rsMedia.Fields.Append "销售数量", adVariant, , adFldMayBeNull + adFldIsNullable + adFldUpdatable
rsMedia.Fields.Append "销售金额", adVariant, , adFldMayBeNull + adFldIsNullable + adFldUpdatable
rsMedia.Fields.Append "销售时间", adVariant, , adFldMayBeNull + adFldIsNullable + adFldUpdatable
rsMedia.Fields.Append "退货时间", adVariant, , adFldMayBeNull + adFldIsNullable + adFldUpdatable
rsMedia.Fields.Append "是否归还货架", adVariant, , adFldMayBeNull + adFldIsNullable + adFldUpdatable
' rsMedia.CursorLocation = 0
rsMedia.Open
End Sub'给无源recordset对象追加字段'Command1_Click事件中以text1.text和dtpicker1的值为条件查询数据库,并将查询到的记录addnew到
'rsMedia对象中
Private Sub Command1_Click()
Dim dateCheck1, dateCheck2 As Date
dateCheck1 = CDate(DTPicker1.Value & " 00:00:00")
dateCheck2 = CDate(DTPicker1.Value & " 23:59:59")
a$ = Trim(Text1)
If a$ = "" Then
MsgBox "请输入条形码", 0, "华庭销售"
Text1.Text = ""
Text1.SetFocus
Exit Sub
End If
strSQL$ = "select number,class,itemNwme,price ,quantity,singleAmout,dealDate from FinishedDEal where number='" & a$ & "' and dealDate between #" & dateCheck1 & "# and #" & dateCheck2 & "# order by dealDate"
Dim connQuery As New ADODB.Connection
connQuery.CursorLocation = adUseClient
Dim rsQuery As New ADODB.Recordset
Call PubConnSub(connQuery, rsQuery, strSQL$, 3, 3)
If rsQuery.EOF Then
MsgBox DTPicker1.Value & "这天没有出售过[*条形码*]为" & a$ & "的商品", 0, "华庭销售"
rsQuery.Close
Set rsQuery = Nothing
connQuery.Close
Set connQuery = Nothing
Else
rsQuery.MoveFirst
While Not rsQuery.EOF
rsMedia.AddNew
For j = 0 To 6 '这7个字段的从查询中得到的,rsMedida剩下的两个字段由下面语句 '赋值
rsMedia(j) = rsQuery(j)
Next j
rsMedia(7) = Now
If Check1.Value Then
rsMedia(8) = True
Else
rsMedia(8) = False
End If
'rsMedia.Update
rsQuery.MoveNext
' rsMedia.MoveNext
Wend
rsMedia.UpdateBatch
'+++++++++++++++++++++++++++++++++++++++++++++
'这里测试rsMedia中的值 打印测试
rsMedia.MoveFirst
While Not rsMedia.EOF
For i = 0 To rsMedia.Fields.Count - 1
Debug.Print CStr(rsMedia(i))
Next i
Debug.Print
Debug.Print
rsMedia.MoveNext
Wend
'测试结果:rsMedia中没有值,也就是说 rsMedia.UpdateBatch没起作用
'++++++++++++++++++++++++++++++++++++++++++++++
Set DataGrid1.DataSource = rsMedia
DataGrid1.Refresh
End If
End Sub由于相同的帖子已经发了多天还是没有高手愿意指点,所以提分再发,希望可以得到解决,请多多指教!
解决方案 »
- 动态数组用完立刻erase么?
- vbl连接EXCEL后怎样读取指定行数据
- 关于StrConv将简体转化成繁体,出现乱码问题,在线等~~~~~~~~~~~~~~~~~
- 一年才升星~~把自己pf得五身投地!呵呵
- VB中二进制数据怎么付给一个OCX的一个属性值
- 谁看过王国荣VB6 API编程这本书,里面关于设置字体部分有问题请教大侠,很急
- COM+问题?很奇怪!在线等待!
- 请教高手,怎么遍历frame 上的 textbox 阿?
- 我是初学者,希望各位高手帮忙,是VB做的考试系统中的问题
- 如何获取程序运行的当前路径
- 求助:本机调试时无问题,到了客户那儿提示“无效属性数组索引”,如何解决?
- COM PORT 上依讯号控制程序问题
问题出在这里:
For j = 0 To 6 '这7个字段的从查询中得到的,rsMedida剩下的两个字段由下面语句 '赋值
rsMedia(j) = rsQuery(j)
Next j上面的赋值语句改一下值类型就好了:For j = 0 To 6 '这7个字段的从查询中得到的,rsMedida剩下的两个字段由下面语句 '赋值
rsMedia(j) = CStr(rsQuery(j)) '转换成字符串再赋值
Next j
to 回复人: J_Zanetti(国际米兰的阿飞)
这证明你没有看代码
我只是给了必须要给出的代码,还有其他很多过程的,在这里就没有给出to 回复人: ok999ok(ok999ok)
Call PubConnSub(connQuery, rsQuery, strSQL$, 3, 3)
这里两个3就是你所说的东西了to faysky2()
这个贴子我在外国论坛上也贴了,有个外国人也这样说了一下,
有可能正确 ,但是我还是有不明白的地方:
rsMedia.Fields.Append "销售数量", adVariant, , adFldMayBeNull + adFldIsNullable + adFldUpdatable
rsMedia("销售数量")字段的数据类型是什么? 不是adVariant吗?如果是的话就应该可以接收数值型的数据了,请多多指点,因为这个问题都好几天没写这个最后的模块了