📄 formwork.frm
字号:
BackColor = -2147483643
ForeColor = -2147483640
Orientation = 0
Enabled = -1
Connect = ""
OLEDBString = ""
OLEDBFile = ""
DataSourceName = ""
OtherAttributes = ""
UserName = ""
Password = ""
RecordSource = ""
Caption = "Adodc1"
BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851}
Name = "宋体"
Size = 9
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
_Version = 393216
End
Begin MSDataGridLib.DataGrid DataGrid1
Bindings = "FormWork.frx":0182
Height = 3135
Left = 120
TabIndex = 11
Top = 240
Width = 9855
_ExtentX = 17383
_ExtentY = 5530
_Version = 393216
ColumnHeaders = -1 'True
HeadLines = 1
RowHeight = 15
AllowAddNew = -1 'True
BeginProperty HeadFont {0BE35203-8F91-11CE-9DE3-00AA004BB851}
Name = "宋体"
Size = 9
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851}
Name = "宋体"
Size = 9
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ColumnCount = 2
BeginProperty Column00
DataField = ""
Caption = ""
BeginProperty DataFormat {6D835690-900B-11D0-9484-00A0C91110ED}
Type = 0
Format = ""
HaveTrueFalseNull= 0
FirstDayOfWeek = 0
FirstWeekOfYear = 0
LCID = 2052
SubFormatType = 0
EndProperty
EndProperty
BeginProperty Column01
DataField = ""
Caption = ""
BeginProperty DataFormat {6D835690-900B-11D0-9484-00A0C91110ED}
Type = 0
Format = ""
HaveTrueFalseNull= 0
FirstDayOfWeek = 0
FirstWeekOfYear = 0
LCID = 2052
SubFormatType = 0
EndProperty
EndProperty
SplitCount = 1
BeginProperty Split0
BeginProperty Column00
EndProperty
BeginProperty Column01
EndProperty
EndProperty
End
End
End
Attribute VB_Name = "FormWork"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit
'*********************************************************************
'初始化过程
'*********************************************************************
Private Sub Form_Load()
Dim RsDB As New ADODB.Recordset
Dim i As Integer
Dim SQLstr As String
'初始化日期
Me.DTPDate.Value = Format(Now, "yyyy-mm-dd")
Me.DTPQueDate.Value = Format(Now, "yyyy-mm-dd")
'初始化ADO控件,连接数据库,设置列首
Adodc1.ConnectionString = CnStr
Adodc1.RecordSource = "Select WorkID as 运营信息记录号," & _
"WorkCarID as 运营车辆ID," & _
"WorkDriverID as 运营司机ID," & _
"WorkDate as 运营日期," & _
"WorkEarning as 运营收入," & _
"Remark as 备注 " & _
"From WorkRec"
Debug.Print Adodc1.RecordSource
Set DataGrid1.DataSource = Adodc1 '不能缺少
'读入已有车辆ID和司机ID
SQLstr = "select CarID from CarInfo order by CarID "
RsDB.Open SQLstr, DBCn, adOpenStatic, adLockReadOnly, -1
If RsDB.RecordCount > 0 Then
If Not RsDB.BOF Then RsDB.MoveFirst
For i = 1 To RsDB.RecordCount
Me.CmbCarID.AddItem (RsDB.Fields("CarID").Value)
If Not RsDB.EOF Then RsDB.MoveNext
Next i
Else
MsgBox "还没有车辆档案,不能添加运营信息", , "车辆运营记录管理"
End If
RsDB.Close
SQLstr = "select DriverID from DriverInfo order by DriverID "
RsDB.Open SQLstr, DBCn, adOpenStatic, adLockReadOnly, -1
If RsDB.RecordCount > 0 Then
If Not RsDB.BOF Then RsDB.MoveFirst
For i = 1 To RsDB.RecordCount
Me.CmbDriverID.AddItem (RsDB.Fields("DriverID").Value)
If Not RsDB.EOF Then RsDB.MoveNext
Next i
Else
MsgBox "还没有司机档案,不能添加运营信息", , "车辆运营记录管理"
End If
RsDB.Close
End Sub
'DataGrid控件中的焦点变换
Private Sub DataGrid1_RowColChange(LastRow As Variant, ByVal LastCol As Integer)
'检验是否为空行
If DataGrid1.Columns(0).Text = "" Then
Exit Sub
End If
'将DataGrid中数据读入各个控件显示
Me.CmbCarID.Text = DataGrid1.Columns(1).Text
Me.CmbDriverID.Text = DataGrid1.Columns(2).Text
Me.DTPDate.Value = DataGrid1.Columns(3).Text
Me.TxtEarning.Text = DataGrid1.Columns(4).Text
Me.TxtRemark.Text = DataGrid1.Columns(5).Text
End Sub
'*********************************************************************
'记录车辆运营信息
'*********************************************************************
'清空按钮
Private Sub CmdEmpty_Click()
Me.DTPDate.Value = Format(Now, "yyyy-mm-dd")
Me.TxtEarning.Text = ""
Me.TxtRemark.Text = ""
End Sub
'记录运营信息
Private Sub CmdAdd_Click()
Dim rsAdd As New ADODB.Recordset
Dim SQLstr As String
Dim Remark As String
'首先检验输入
If Len(Trim(Me.CmbCarID.Text)) <= 0 Then '没有选择车辆ID
MsgBox "请选择车辆ID!", , "添加运营信息"
Exit Sub
End If
If Len(Trim(Me.CmbDriverID.Text)) <= 0 Then '没有选择司机ID
MsgBox "请选择司机ID!", , "添加运营信息"
Exit Sub
End If
If Len(Trim(Me.TxtEarning.Text)) <= 0 Then '没有输入收入
MsgBox "请输入运营收入!", , "添加运营信息"
Exit Sub
End If
'检验完毕,数据入库,备注项可选
If Me.TxtRemark.Text = vbNullString Then '没有备注项
SQLstr = "INSERT INTO WorkRec"
SQLstr = SQLstr & "(WorkCarID,WorkDriverID,WorkDate,WorkEarning) "
SQLstr = SQLstr & "VALUES ('" & Me.CmbCarID.Text & "',"
SQLstr = SQLstr & "'" & Me.CmbDriverID.Text & "',"
SQLstr = SQLstr & "#" & Me.DTPDate.Value & "#,"
SQLstr = SQLstr & "'" & Me.TxtEarning.Text & ");"
Debug.Print SQLstr
DBCn.Execute SQLstr
Else '有备注项
Remark = Replace(Trim(Me.TxtRemark.Text), "'", "''")
SQLstr = "INSERT INTO WorkRec"
SQLstr = SQLstr & "(WorkCarID,WorkDriverID,WorkDate,WorkEarning,Remark) "
SQLstr = SQLstr & "VALUES ('" & Me.CmbCarID.Text & "',"
SQLstr = SQLstr & "'" & Me.CmbDriverID.Text & "',"
SQLstr = SQLstr & "#" & Me.DTPDate.Value & "#,"
SQLstr = SQLstr & "'" & Me.TxtEarning.Text & "',"
SQLstr = SQLstr & "'" & Remark & "');"
Debug.Print SQLstr
DBCn.Execute SQLstr
End If
MsgBox "添加成功", , "添加运营信息"
Adodc1.Refresh
End Sub
'*********************************************************************
'修改车辆运营记录
'*********************************************************************
'修改按钮
Private Sub CmdMod_Click()
DataGrid1.Columns(1).Text = Me.CmbCarID.Text
DataGrid1.Columns(2).Text = Me.CmbDriverID.Text
DataGrid1.Columns(3).Text = Me.DTPDate.Value
DataGrid1.Columns(4).Text = Me.TxtEarning.Text
DataGrid1.Columns(5).Text = Me.TxtRemark.Text
MsgBox "修改成功", , "修改运营信息"
End Sub
'*********************************************************************
'删除车辆运营记录
'*********************************************************************
'删除按钮
Private Sub CmdDel_Click()
If MsgBox("确定要删除选定档案吗?", vbOKCancel, "删除运营信息") = vbOK Then
Adodc1.Recordset.Delete
MsgBox "删除成功!", , "删除运营信息"
CmdEmpty_Click
End If
Exit Sub
End Sub
'*********************************************************************
'车辆运营记录查询
'*********************************************************************
'返回按钮
Private Sub CmdBack_Click()
Me.LvResult.Visible = False
Me.CmdBack.Visible = False
End Sub
'查询按钮
Private Sub CmdQue_Click()
Dim Questr As String
Dim RsQuery As New ADODB.Recordset
Dim LtItm As ListItem
Dim Remark As String
Dim i As Integer
'按车辆ID查询
If Me.OptQue(0).Value = True Then
'判断查询条件
If Me.TxtQueCar.Text = "" Then
MsgBox "请输入要查询的车辆ID!", , "查询运营信息"
Exit Sub
End If
'生成查询语句
Questr = "select * from WorkRec where WorkCarID = " & Val(Me.TxtQueCar.Text)
'按司机ID查询
ElseIf Me.OptQue(1).Value = True Then
'判断查询条件
If Me.TxtQueDriver.Text = "" Then
MsgBox "请输入要查询的司机ID!", , "查询运营信息"
Exit Sub
End If
'生成查询语句
Questr = "select * from WorkRec where WorkDriverID = " & Val(Me.TxtQueDriver.Text)
'按运营日期查询
ElseIf Me.OptQue(2).Value = True Then
'生成查询语句
Questr = "select * from WorkRec where WorkDate= #" & Me.DTPQueDate.Value & "#"
'按备注查询
ElseIf Me.OptQue(3).Value = True Then
'替换单引号
Remark = Replace(Trim(Me.TxtQueRemark.Text), "'", "''")
'生成查询语句
Questr = "select * from WorkRec where Remark Like '%" & Remark & "%'"
End If
'打开数据集
Debug.Print Questr
RsQuery.Open Questr, DBCn, adOpenStatic, adLockOptimistic
'显示查询结果
If RsQuery.EOF Then
MsgBox "数据库中没有符合要求的记录!", , "查询运营信息"
Exit Sub
End If
Me.LvResult.Visible = True
Me.CmdBack.Visible = True
'清空列表
Me.LvResult.ListItems.Clear
'数据集指针指向第一个记录
RsQuery.MoveFirst
For i = 1 To RsQuery.RecordCount
Set LtItm = Me.LvResult.ListItems.Add()
LtItm.Text = RsQuery.Fields("WorkID").Value
LtItm.SubItems(1) = RsQuery.Fields("WorkCarID").Value
LtItm.SubItems(2) = RsQuery.Fields("WorkDriverID").Value
LtItm.SubItems(3) = RsQuery.Fields("WorkDate").Value
LtItm.SubItems(4) = RsQuery.Fields("WorkEarning").Value
If RsQuery.Fields("Remark").Value <> "" Then
LtItm.SubItems(5) = RsQuery.Fields("Remark").Value
End If
'数据集指针指向下一条记录
RsQuery.MoveNext
Next i
'关闭数据集
RsQuery.Close
End Sub
'设置焦点对应的单选按钮
Private Sub TxtQueCar_GotFocus()
Me.OptQue(0).Value = True
EmptyQue
End Sub
Private Sub TxtQueDriver_GotFocus()
Me.OptQue(1).Value = True
EmptyQue
End Sub
Private Sub DTPQueDate_Click()
Me.OptQue(2).Value = True
EmptyQue
End Sub
Private Sub TxtQueRemark_GotFocus()
Me.OptQue(3).Value = True
EmptyQue
End Sub
'清空查询内容函数
Private Sub EmptyQue()
Me.TxtQueCar.Text = ""
Me.TxtQueDriver.Text = ""
Me.DTPQueDate.Value = "2006-1-1"
Me.TxtQueRemark.Text = ""
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -