请帮我看一下,我的目的是打开这个“考核分类数据”(事先没有指定数据源)窗口的时候,如果是在前一个窗体上点击ID链接打开的话,就一定会有传递过来的参数(就是考核时间),如果是独立打开的话,这个值肯定为空。DoCmd.OpenForm "考核分类数据", acNormal, "", "[ID]=" & ID, , , Me.考核时间
依据这个参数的值(年月)转化成数据库表,先确定数据源。如果这个参数不为空(即有时间)的话,就会转到后面蓝色字的那一部分代码。现在的问题是我在前面的那个窗口不论点击哪个ID,都是直接显示的第一条记录。按5楼的说法我去掉了gotorecord,还是不行,希望大家帮忙看看。
Private Sub Form_Load()
Dim Sql As String '设置一个SQL变量
Dim tblName As String '设置一个表或查询的名字变量
Dim sj As String '设置一个日期变量
Dim jg As Long '设置一个距离当前月有几个月的变量
Dim i As Long
Dim ls As Boolean '设置一个真假变量
If IsNull(Me.OpenArgs) Then
Me.txtsj.Value = Format(txtsj.ItemData(0), "yyyy年m月")
sj = Format(Me.txtsj.Value, "yyyymm")
jg = 0
ls = False
For i = 0 To Me.txtsj.ListCount
tblName = "00" & sj & ":考核原始数据"
Sql = "select [" & tblName & "].* from " & tblName
If tblA(tblName) = True Then
ls = True
ElseIf tblB(tblName) = True Then
ls = True
Else
jg = jg - 1
sj = Format(DateAdd("m", jg, Me.txtsj.Value), "yyyymm")
Me.txtsj.Value = Format(DateAdd("m", jg, Me.txtsj.Value), "yyyy年m月")
ls = False
End If
Next i
If ls = True Then
Me.Form.Caption = Format(Me.txtsj.Value, "yyyy年m月") & " 绩效工资考核批量数据"
Me.Form.RecordSource = Sql
Me.Requery
Else
Me.Form.Caption = "对不起,数据库没有绩效工资考核数据!"
MsgBox ("您好,非常抱歉,没有找到您所需要的绩效工资考核数据,也可能是您查保存的名称不符合要求,正确的命名方式为“00******:考核原始数据”,其中的******代表四位年和两位月代码,年月之间没有任何连字符。")
End If
Else
Me.txtsj.Value = Format(Me.OpenArgs, "yyyy年m月")
sj = Format(Me.txtsj.Value, "yyyymm")
tblName = "00" & sj & ":考核原始数据"
Sql = "select [" & tblName & "].* from " & tblName
Me.Form.Caption = Format(Me.txtsj.Value, "yyyy年m月") & " 绩效工资考核批量数据"
Me.Form.RecordSource = Sql
Me.Requery
End If
End Sub