为什么提示函数未定义---急...

miniling 2007-01-26 01:43:30
frm代码:
Private Sub Command1_Click()

Dim SQL As String
SQL = "select * from T_MAIN_SOURCE "
Set rs1 = TransactSQL(SQL)

If rs1.EOF = True Then
MsgBox "源表没有内容", vbOKOnly + vbExclamation, ""
Else '检验源表是否有数据
Do While rs1.EOF
Set rs2 = TransactSQL("select * from P_PATMAIN where PATNO='" & rs1.Field("PATNO") & "'")
If rs2.EOF = True Then
TransactSQL ("insert into P_PATMAIN (PATNO) values('" & rs1.Field("PATNO") & "')")
End If
rs2.Close
rs1.MoveNext
Loop
End If
rs1.Close
MsgBox "处理完成", vbOKOnly + vbExclamation, ""
Unload Me



End Sub


MODULE1代码:

Public flag As Integer '添加和修改的标志
Public gSQL As String '保存SQL语句
Public iflag As Integer '数据库是否打开标志

Private Function TransactSQL(ByVal SQL As String) As ADODB.Recordset
Dim con As ADODB.Connection
Dim rs As ADODB.Recordset
Dim strConnection As String
Dim strArray() As String
Set con = New ADODB.Connection '创建连接
Set rs = New ADODB.Recordset '创建记录集
On Error GoTo TransactSQL_Error
strConnection = "Provider=Microsoft.jet.oledb.4.0;Data Source=" & App.Path & "\Data.mdb"
strArray = Split(SQL)
con.Open strConnection '打开连接
If StrComp(UCase$(strArray(0)), "select", vbTextCompare) = 0 Then
rs.Open Trim$(SQL), con, adOpenKeyset, adLockOptimistic
Set TransactSQL = rs '返回记录集
iflag = 1
Else
con.Execute SQL '执行命令
iflag = 1
End If
TransactSQL_Exit:
Set rs = Nothing
Set con = Nothing
Exit Function
TransactSQL_Error:
MsgBox "查询错误:" & Err.Description
iflag = 2
Resume TransactSQL_Exit
End Function
...全文
483 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
yachong 2007-01-26
  • 打赏
  • 举报
回复
是不是RENOUNCECODE这些变量里面包含了单引号、双引号、星号问号之类的特殊符号?
aisingiorotsidao 2007-01-26
  • 打赏
  • 举报
回复
是不是需要一个Imports呢
miniling 2007-01-26
  • 打赏
  • 举报
回复
加了也不管用的.
zyg0 2007-01-26
  • 打赏
  • 举报
回复
'"&RENOUNCECODE&"' 之间有空格 '" & RENOUNCECODE & "'
zyg0 2007-01-26
  • 打赏
  • 举报
回复
public Function TransactSQL(ByVal SQL As String) As ADODB.Recordset
miniling 2007-01-26
  • 打赏
  • 举报
回复
这句SQL语句哪儿有错呀.系统总提示出错:
"update P_PATMAIN set REGDATE='"®DATE&"', RENOUNCECODE='"&RENOUNCECODE&"', APPDATE='"&APPDATE&"', IAPPDATE='"&IAPPDATE&"', REGASSDATE='"®ASSDATE&"', EXAMDATE='"&EXAMDATE&"', OPENDATE='"&OPENDATE&"', FINALCODE='"&FINALCODE&"', APPREQDATE='"&APPREQDATE&"', DRAFTSENTDATE='"&DRAFTSENTDATE&"', DRAFTSENTLMTDATE='"&DRAFTSENTLMTDATE&"', RECDATE='"&RECDATE&"' where PATNO='"&rs1("PATNO")&"'"

其中所有字段都是文本型

辛苦各位大虾,解决完这一小段程序,我就散分了.
ceagle 2007-01-26
  • 打赏
  • 举报
回复
frm 无法调用 MODULE 里的 Private函数,如楼上所说改为public
lailuboy 2007-01-26
  • 打赏
  • 举报
回复
模块中的Private Function TransactSQL,改成Public Function TransactSQL
GoldFox 2007-01-26
  • 打赏
  • 举报
回复
1.檢查工程是否引用了ADO
2.將Private Function TransactSQL(ByVal SQL As String) As ADODB.Recordset
改爲 Public Function TransactSQL(ByVal SQL As String) As ADODB.Recordset
CheeringSoft 2007-01-26
  • 打赏
  • 举报
回复
有没有引用ADO?

1,217

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧