0

我的表单的功能是允许用户为另一个用户分配任务,这很好用。用户通过链接到访问数据库的组合框选择他们想要分配任务的人,我现在正在尝试实现一个功能,因为我可以从组合框中获取所选用户的值(通过匹配 ID将组合框添加到数据库中的 ID,然后从该行中找到电子邮件,这样我就可以将其插入到用户单击“分配”时弹出的 Outlook 电子邮件中(Outlook 代码工作正常,只是没有拉组合框中的值,因此单击它会显示 Outlook 新电子邮件,但“收件人”字段为空,我还尝试打印我分配给该字段的变量以确保它不是 Outlook 代码的问题它仍然不返回任何值)。

这是不起作用的代码部分....

Dim OutApp As Object
Dim OutMail As Object
Dim EmailSubject As String
Dim EmailSendTo As String
Dim MailBody As String
Dim db As DAO.Database, rs As DAO.Recordset
Dim s As String
Dim sqlStatement As String

Combo2.SetFocus

Set db = CurrentDb
Set rs = db.OpenRecordset("SELECT tblUsers.Email FROM tblUsers WHERE tblUsers.UserID = 'Combo2.Text ")

Combo2 是组合框的名称

4

3 回答 3

0

试试这个:

如果您的用户 ID 是Text尝试这个:

Set rs = db.OpenRecordset("SELECT tblUsers.Email FROM tblUsers WHERE tblUsers.UserID = '" & Combo2.Text & "'")

但是,如果您的 UserID 是numeric尝试这个:

Set rs = db.OpenRecordset("SELECT tblUsers.Email FROM tblUsers WHERE tblUsers.UserID = " & Combo2.Text)
于 2013-10-28T14:17:02.273 回答
0

我不完全理解 Access 是如何发挥作用的,所以如果这是错误的,我深表歉意。这就是我在 Access 中的做法:

Dim OutApp As Object
Dim OutMail As Object
Dim EmailSubject As String
Dim EmailSendTo As String
Dim MailBody As String
Dim db As DAO.Database, rs As DAO.Recordset
Dim EmailTo as String
Dim s As String
Dim sqlStatement As String

Combo2.SetFocus

Set db = CurrentDb
EmailTo = DLookup ("Email", "tblUsers", "tblUsers.UserID = '" & Combo2.Text & "'")

如果您的 UserID 是 INT,您可以将最后一行更改为:

EmailTo = DLookup ("Email", "tblUsers", "tblUsers.UserID = " & Combo2.Text & "")

顺便说一句,您说 Edper 的解决方案“没有任何作用”。你知道“rs”在那种情况下不会有实际价值,对吧?rs("Email") 但是,如果您添加:

EmailSendTo = rs("Email")

在他的 SQL 字符串之后,这可能会给你你需要的东西。

于 2013-10-28T19:07:16.320 回答
0

可能是这样?

Set rs = db.OpenRecordset("SELECT tblUsers.Email FROM tblUsers WHERE tblUsers.UserID = " & Combo2.SelectedItem.ToString())
于 2013-10-28T11:30:28.007 回答