1、模组中定义: Option ExplicitPublic LoadSql As String Public ConnSql As String Public LoadRs As New ADODB.Recordset Public SqlConn As New ADODB.Connection2、主窗体: Option Explicit 'Dim LoadSql As String 'Dim ConnSql As String 'Dim LoadRs As New ADODB.Recordset 'Dim SqlConn As New ADODB.ConnectionPrivate Sub cmdLoadData_Click() On Error GoTo eNext: If SqlConn.State = 1 Then SqlConn.Close ConnSql = "Provider=sqloledb;Data Source=IQMS-PETERPAN;Initial Catalog=AideSolar_BarCodeMIS;User Id=SA;Password=lovelyh;" SqlConn.ConnectionString = ConnSql SqlConn.Open
LoadSql = "SELECT * FROM [AideSolar_BarCodeMIS].[dbo].[tabPowerRange]" If LoadRs.State = 1 Then LoadRs.Close LoadRs.Open LoadSql, SqlConn, adOpenKeyset, adLockOptimistic
If Not LoadRs.EOF Then Set MSHFlexGrid1.DataSource = LoadRs Else 'Your function code End If Exit Sub eNext: MsgBox Err.Description, vbCritical, Err.Number End SubPrivate Sub MSHFlexGrid1_Click() Call LoadData(MSHFlexGrid1.TextMatrix(MSHFlexGrid1.Row, 1)) End SubPublic Function LoadData(ByVal strID As String) Dim LoadSql As String Dim LoadRs As New ADODB.Recordset
If LoadRs.State = 1 Then LoadRs.Close LoadSql = "SELECT * FROM tabPowerRange where id=" & Trim(strID) LoadRs.Open LoadSql, SqlConn, adOpenKeyset, adLockOptimistic
If Not LoadRs.EOF Then LoadRs.MoveFirst With frmEditData .txtID.Text = LoadRs!id .txtRatedPower.Text = LoadRs!ratedpower .txtRatedV.Text = LoadRs!ratedv .Show 1 End With
End If
End FunctionPublic Function ReLoadData() Call cmdLoadData_Click End Function3、编辑窗体 Option ExplicitPrivate Sub cmdCancel_Click() Unload Me End SubPrivate Sub cmdSave_Click() Dim UpdateSql As String Dim UpdateCommand As New ADODB.Command On Error GoTo eNext: UpdateSql = "update tabPowerRange set " + _ "RatedPower=" + Trim(txtRatedPower.Text) + "," + _ "Ratedv=" + Trim(txtRatedV.Text) + " where id=" & Trim(txtID.Text) UpdateCommand.ActiveConnection = SqlConn UpdateCommand.CommandType = adCmdText UpdateCommand.CommandText = UpdateSql UpdateCommand.Execute
With Form2
.Text1.Text = rs!Field1
.Text2.Text = rs!Field2
...
End With
Form2.Show VBModal, Me
Private Sub Command2_Click()
If flxShow.RowSel = 0 Then
MsgBox "请选中要修改的记录!", vbOKOnly + vbInformation, "提示"
Else
strSql = "select * from 检修记录表 where 序号='" & flxShow.TextMatrix(flxShow.RowSel, 0) & "'"
rs.Open strSql, dbConn, adOpenKeyset, adLockOptimistic
End If
Load 编辑
With 编辑
.cbo_gzfzr = rs!Field(3)
.txt_gzpbh = rs!Field(6)
.cbo_kaishi = rs!Field(4)
.cbo_jieshu = rs!Field(5)
.cbo_jizuhao = rs!Field(1)
.txt_gzrw = rs!Field(2)
.txt_jxnr = rs!Field(7)
End With
编辑.Show vbModal, Me
以上是我的代码,在rs.Open strSql, dbConn, adOpenKeyset, adLockOptimistic这里报错实时错误'-2147217913 (80040e07)':
[Microsoft][ODBC Microsoft Access Driver]标准表达式中数据类型不匹配。请问哪出错了?
序号='" & flxShow.TextMatrix(flxShow.RowSel, 0) & "'这个里边,flxShow选中行的值会和 & 符号组成一个string字符串,你检查下。
Option ExplicitPublic LoadSql As String
Public ConnSql As String
Public LoadRs As New ADODB.Recordset
Public SqlConn As New ADODB.Connection2、主窗体:
Option Explicit
'Dim LoadSql As String
'Dim ConnSql As String
'Dim LoadRs As New ADODB.Recordset
'Dim SqlConn As New ADODB.ConnectionPrivate Sub cmdLoadData_Click()
On Error GoTo eNext:
If SqlConn.State = 1 Then SqlConn.Close
ConnSql = "Provider=sqloledb;Data Source=IQMS-PETERPAN;Initial Catalog=AideSolar_BarCodeMIS;User Id=SA;Password=lovelyh;"
SqlConn.ConnectionString = ConnSql
SqlConn.Open
LoadSql = "SELECT * FROM [AideSolar_BarCodeMIS].[dbo].[tabPowerRange]"
If LoadRs.State = 1 Then LoadRs.Close
LoadRs.Open LoadSql, SqlConn, adOpenKeyset, adLockOptimistic
If Not LoadRs.EOF Then
Set MSHFlexGrid1.DataSource = LoadRs
Else
'Your function code
End If
Exit Sub
eNext:
MsgBox Err.Description, vbCritical, Err.Number
End SubPrivate Sub MSHFlexGrid1_Click()
Call LoadData(MSHFlexGrid1.TextMatrix(MSHFlexGrid1.Row, 1))
End SubPublic Function LoadData(ByVal strID As String)
Dim LoadSql As String
Dim LoadRs As New ADODB.Recordset
If LoadRs.State = 1 Then LoadRs.Close
LoadSql = "SELECT * FROM tabPowerRange where id=" & Trim(strID)
LoadRs.Open LoadSql, SqlConn, adOpenKeyset, adLockOptimistic
If Not LoadRs.EOF Then
LoadRs.MoveFirst
With frmEditData
.txtID.Text = LoadRs!id
.txtRatedPower.Text = LoadRs!ratedpower
.txtRatedV.Text = LoadRs!ratedv
.Show 1
End With
End If
End FunctionPublic Function ReLoadData()
Call cmdLoadData_Click
End Function3、编辑窗体
Option ExplicitPrivate Sub cmdCancel_Click()
Unload Me
End SubPrivate Sub cmdSave_Click()
Dim UpdateSql As String
Dim UpdateCommand As New ADODB.Command
On Error GoTo eNext:
UpdateSql = "update tabPowerRange set " + _
"RatedPower=" + Trim(txtRatedPower.Text) + "," + _
"Ratedv=" + Trim(txtRatedV.Text) + " where id=" & Trim(txtID.Text)
UpdateCommand.ActiveConnection = SqlConn
UpdateCommand.CommandType = adCmdText
UpdateCommand.CommandText = UpdateSql
UpdateCommand.Execute
Call frmMain.ReLoadData
MsgBox "Update Success...", vbInformation, App.Title
Unload Me
eNext:
MsgBox Err.Description, vbCritical, Err.Number
End Sub