作者chrisjon (即将再当澳客)
看板Visual_Basic
标题[VB6 ] 资料库写入
时间Fri Nov 22 14:57:03 2013
请问黄色和绿色部份一样
日期有记进资料库,但车号却没记进去,是哪里有问题吗?
**
界面简介:
车号combo
三个记录日期的text(年/月/日)
一个公升text
一个价格text
一里程数text
四个cammend
一个adodc及grid
**
所有的text都成功的记录进资料库里,但只有combo的记录失败
刚稍微修改了一些内容
把原本以text用DataSource及DataField来跟资料库连结
修改成
全部以Adodc.Record.Field(i) = val(text.text)的模式写进access里
利用 逐行 功能来看,跑到车牌那里时,确定 rs.Fields(0) 也有写进车牌号码了
但是Record.update之後,
每一个都成功写进资料库了,唯独车号写不进去
**
再次测试,跳出msgbox确认是否记录时,车号有出现在DataGrid里
但是按下"确定"按钮後,车牌号码却消失了…
=================================
Private Sub Form_Load()
'车辆选单设定
truck(0) = "XS-001"
truck(1) = "XS-002"
truck(2) = "XS-003"
truck(3) = "XS-004"
truck(4) = "XS-005"
cboTruckPlate.Clear
For i = 0 To 4
cboTruckPlate.AddItem (truck(i))
Next
cboTruckPlate.ListIndex = 0
'按钮名称设定
cmdAddNew.Caption = "新增"
cmdSave.Caption = "储存"
cmdDelete.Caption = "删除"
cmdFinish.Caption = "结束"
'锁定输入格
InputLocked
***
Private Sub cmdSave_Click()
'输入的资料全集合在字串里
'车号必填
temp = ""
If cboTruckPlate.ListIndex = -1 Then
return_msg = MsgBox("车号忘了选", 32, "请选择车号")
cboTruckPlate.SetFocus
Exit Sub
Else
'记录车号
tPlateRecord = truck(cboTruckPlate.ListIndex)
AdoDiesel.Recordset.Fields(0) = tPlateRecord
temp = "车号:" & txtTruckPlate.Text & vbCrLf
End If
'日期必填
If txtYear.Text <> "" And txtMonth.Text <> "" And txtDay.Text <> "" Then
'记录日期
tDate = Format(Str(txtYear.Text), "0000") + "/" +
Format(Str(txtMonth.Text), "00") + "/" + Format(Str(txtDay.Text), "00")
AdoDiesel.Recordset.Fields(1) = tDate
temp = temp & "日期:" & Str(txtYear.Text) & "年" & Str(txtMonth.Text) & "
月" & Str(txtDay.Text) & "日" & vbCrLf
Else
return_msg = MsgBox("日期没输入", 32, "请输入日期")
txtYear.SetFocus
Exit Sub
End If
'加油量必填
If txtLiter.Text = "" Then
return_msg = MsgBox("今天加了几公升?", 32, "请输入加油量")
txtLiter.SetFocus
Exit Sub
Else
AdoDiesel.Recordset.Fields(2) = Val(txtLiter.Text)
temp = temp & "公升:" & Str(txtLiter.Text) & vbCrLf
End If
If txtPrice.Text <> "" Then
AdoDiesel.Recordset.Fields(3) = Val(txtPrice.Text)
temp = temp & "价格:" & Str(txtPrice.Text) & vbCrLf
End If
If txtMileage.Text <> "" Then
AdoDiesel.Recordset.Fields(4) = Val(txtMileage.Text)
temp = temp & "里程数:" & Str(txtMileage.Text)
End If
If temp <> "" Then
return_value = MsgBox(temp, 33, "以下资料是否正确") '检测资料是否正确
If return_value = 1 Then '资料正确即存入
AdoDiesel.Recordset.Update
AdoDiesel.Recordset.Update
AdoDiesel.Refresh
Else
return_msg = MsgBox("放弃储存,请重新输入", 48, "资料未存入")
AdoDiesel.Refresh
End If
End If
AdoDiesel.Recordset.Update
'再重整并移动到最後
AdoDiesel.Refresh
AdoDiesel.Recordset.MoveLast
'输入结束,输入格锁定
Form_Load
SetFilesWidth
cmdAddNew.SetFocus
AdoDiesel.Recordset.MoveLast
End Sub
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 1.124.158.162
1F:推 johnpage:看不出是何种资料库 11/22 17:56
2F:→ johnpage:索引<>值 11/22 17:58
简单的把Text里的值放进access里,只有第一个是用combo选择内定的车牌号码
※ 编辑: chrisjon 来自: 1.124.158.162 (11/22 19:33)
※ 编辑: chrisjon 来自: 1.124.158.162 (11/22 19:39)
※ 编辑: chrisjon 来自: 1.142.154.153 (11/24 16:54)
3F:→ EShensh:你 FormLoad 中的 truck 变数范围是在哪边? 全域吗? 11/24 23:04
4F:→ EShensh:truck(cboTruckPlate.ListIndex) 这边怎麽不直接抓Combo值 11/24 23:04
5F:→ chrisjon:另外设一个模组,在那里设定Public truck(4) As String*6 11/25 01:50
6F:→ chrisjon:不好意思,不是很懂抓combo值 11/25 01:58
7F:推 johnpage:请确认资料库是不是有值,只是不是自己想的值 11/25 05:37
8F:推 ClubT:你输入的车号是否满足资料库车号的栏位? 11/25 11:55
找到可能问题了……
手动输入车号并没有问题,是可以储存的,但是利用程式写却一直都写不进去
刚没事点点DataGrid的车号空白栏位
因为我设定该栏位只能有6码,发现格子里都被空格占满
到底……空格是在哪里被占满的…~.~?
※ 编辑: chrisjon 来自: 1.143.42.146 (11/26 05:13)
9F:推 johnpage:索引 11/26 12:41
10F:→ chrisjon:不是很明白,请问可以简单解说一下吗? 谢谢 11/26 13:15
11F:→ johnpage:不要先使用阵列,先直接填字串 11/26 17:44