【求助】有关VB的一个问题 inputBase

2025-12-25 07:42:07
推荐回答(1个)
回答1:

inputBase() 是一个数据库对象,用来输入数据库中的内容。用法可参考如下:

Option Explicit
Dim x1 As String, x2 As String, x3 As String, x4 As String, x5 As String, x6 As String, response As Integer
Dim str As String
Private cnn As New ADODB.Connection
Private rs As New ADODB.Recordset
Dim strcnn

Private Sub Command1_Click()
x1 = Trim(Text1.Text)
x2 = Trim(Text2.Text)
x3 = Trim(Text3.Text)
x4 = CSng(Trim(Text4.Text))
x5 = CSng(Trim(Text5.Text))
x6 = CSng(Trim(Text6.Text))
Dim str1 As String
str1 = "人员代码:" & x1 & "姓名:" & x2 & "部门:" & x3 & "基本工资:" & x4 & "附加工资:" & x5 & "房费:" & x6
response = MsgBox(str1, vbYesNo, "数据检验")
If response = 6 Then
inputBase
End If
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
Text4.Text = ""
Text5.Text = ""
Text6.Text = ""
End Sub

Private Sub Command2_Click()
Unload Me
End Sub

Private Sub Form_Load()
Me.Left = 4000
Me.Top = 3500
Set cnn = New ADODB.Connection
strcnn = "Provider = Microsoft.jet.oledb.4.0;" & "Data Source=‘" & App.Path & "\DB.mdb’"
cnn.Open strcnn
Set rs = New ADODB.Connection
rs.CursorType = adOpenKeyset
rs.LockType = adLockOptimistic
End Sub

Private Sub Form_Unload(Cancel As Integer)
cnn.Close
End Sub

Private Sub Text3_KeyPress(KeyAscii As Integer)
Dim var As String, h As Integer
h = 0
var = Trim(Text3.Text)
h = Len(var)
If KeyAscii <> 8 Then
If (h > 1) Then
MsgBox "部门名称最长为2个字节!", , "错误"
KeyAscii = 0
End If
End If
End Sub

Private Sub inputBase()
str = "select * from gzzu01 where dm =‘" & x1 & "’"
rs.Open str, cnn, , , adCmdText
If rs.RecordCount = 0 Then
rs.Close
rs.Open "gzzu01", cnn, , , adCmdTable
If rs.RecordCount <> 0 Then
rs.MoveLast
End If
rs.AddNew
rs! DM = x1
rs! XM = x2
rs! BM = x3
rs! JBGZ = x4
rs! FJGZ = x5
rs! FF = x6
rs.Update
rs.Close
MsgBox "该记录成功录入数据库", , "成功"
Else
MsgBox "该人已有数据!确定后重新输入", , "错误"
rs.Close
End If
End Sub