当我想在Microsoft Access中自动填充表单时,我遇到了问题。我的想法是我使用组合框来选择名称。然后我的Combobox的onChange代码自动将所有其他数据插入到正确的字段中。我在组合框上使用此代码。
let stringURLSearchPostCode = "http://maps.apple.com/?q=" + self.textFieldPostcode.text
UIApplication.sharedApplication().openURL(NSURL(string: stringURLSearchPostCode)!)
这种方法适用于个人号码和电子邮件地址。但它不适用于生日日期,它返回一个空值,但当我检查我的表时,在适当的字段中有一个日期。
我错过了什么吗?我尝试了一切,但它不会工作。 我当时认为问题与生日列是表中的最后一列有关。或者有日期类型。
提前感谢您的时间和efford!
编辑;缺少.Column(1),因为这是已经使用ComboBox插入的名称。
答案 0 :(得分:1)
问题的措辞引起了一些混乱,我会试着说明我的解释方式,如果我说得对,它可能会引导你回答。
您有一个名为cmdName
的组合框,它预先填充了表中的数据。组合框的内容可能如下所示(您可能已将列宽设置为零以隐藏数据)
0001|Gary Evans|gary@email.com|01/Jan/1970
0002|J Rommers |JR@email.com |02/Jan/1970
当用户选择J Rommers
Me.tbPersonalNumber
填充Me.cmbName.Column(0)
(0002)且Me.tbEmailadress
填充Me.cmbName.Column(2)
(JR@email.com)但Me.tbBirthday
({1}}(02 / Jan / 1970)没有填充Me.cmbName.Column(3)
。
假设Me.tbBirthday
是一个没有代码可以清除它的文本框,我怀疑问题是在组合框内。我不确定您的组合框是如何设置的,我会建议以下检查: -
Column Count
是否等于4?Me.tbBirthday = Me.cmbName.Column(3)
上有一个断点,它会显示您所追踪的日期吗?
根据评论进行编辑以进一步提供帮助: -
SELECT Personel.PersonalNumber, Personel.Emailadress, Personel.Birthday, Personel.Name FROM Personel ORDER BY Personel.Name;
,这会将您想隐藏的所有字段隐藏在前面。cmbName
的列宽属性更改为0,0,0
,这首先是您想要隐藏的属性,并留下最后一个来填充组合框的宽度。更换代码: -
Me.tbPersonalNumber = Me.cmbName.Column(0)
Me.tbEmailadress = Me.cmbName.Column(1)
Me.tbBirthday = DateValue(Me.cmbName.Column(2))
这会考虑在查询中移动的字段,并确保日期显示为您想要的日期。
答案 1 :(得分:1)
组合框(和列表框)总是返回一个字符串,因此将其转换为日期值:
def func(a, b=10):
print([a, b])