问题应该出在这里:
max = e.DataTable.Compute("Max(编号)","日期 >= #" & fd & "# And 日期 <= #" & ld & "#") '取得该月的最大编号合成的不是一个有效日期。
最好做个简单的例子发上来给大家调试分析,纸上谈兵,脱离具体数据和示例,一切都是白谈。