Access表单数据从哪里填充数据
Where is Access form data populating data from
我目前正在尝试帮助朋友处理他们的发票 Access 数据库。我很少使用 Access,而且我在确定表单 (frmEntry) 从中提取数据的位置时遇到了问题。我没有创建此设置,所以我不确定它是如何工作的。当在表单的下拉列表中选择客户时,我试图找出从何处提取地址信息。我检查了查询,它只提取了 CustomerID 和 CustomerName,没有地址。 table 确实有地址字段,但 table 中的 none 客户有任何列出的地址,但地址与他们的姓名一起填充在表单中。
我确实看到哪里有另一个表格 (frmCustomer) 有客户和地址,但我不确定另一个表格是否从这里提取,如果是,为什么我找不到任何地址tables 或数据表视图?
任何方向将不胜感激。我的最终目标是获取客户信息(地址等),以便我可以将其插入我正在处理的新数据库中
您的数据包含换行符,组合框每条记录仅显示一行。
要显示数据,您可以替换行源中的换行符。
SELECT Replace([CustomerName],vbCrLf, " ") as CName FROM table
' vbCrLf is the VBA constant for linebreaks (Cr - Carrige Return, Lf - LineFeed)
这是糟糕的数据库规范化(假设您想搜索一个等于城市的客户名称,例如巴黎)。每行应该是 table 中的一个单独字段(以及邮政编码)。如果每个数据都有换行符(例如没有街道 -> 空行),您可以将数据拆分到新字段中。
'Put this code in a module
'Split function
Public function splitCustomerName(ByVal strCustomerName as String, ByVal index as long) as String
Dim arrCustomerName As Variant ' or declare a fixed array if you know the number of lines
arrCustomerName = Split(strCustomername,vbCrLf)
splitCustomerName = arrCustomerName(index)
End Function
查询
UPDATE table SET newCustomerName = splitCustomerName([table].[CustomerName],0)
, newCustomerStreet = splitCustomerName([table].[CustomerName],1)
, newCustomerCity = splitCustomerName([table].[CustomerName],2);
只需为姓名、街道和城市创建必要的列,然后 运行 查询。
如果您删除 CostumerName 列并重命名 table(例如 newTable),您可以使用 table 的旧名称创建一个查询,其行为类似于您的旧 table.
SELECT *
, newCustomerName & vbCrLf & newCustomerStreet & vbCrLf & newCustomerCity as CustomerName
FROM newTable
我目前正在尝试帮助朋友处理他们的发票 Access 数据库。我很少使用 Access,而且我在确定表单 (frmEntry) 从中提取数据的位置时遇到了问题。我没有创建此设置,所以我不确定它是如何工作的。当在表单的下拉列表中选择客户时,我试图找出从何处提取地址信息。我检查了查询,它只提取了 CustomerID 和 CustomerName,没有地址。 table 确实有地址字段,但 table 中的 none 客户有任何列出的地址,但地址与他们的姓名一起填充在表单中。
我确实看到哪里有另一个表格 (frmCustomer) 有客户和地址,但我不确定另一个表格是否从这里提取,如果是,为什么我找不到任何地址tables 或数据表视图?
任何方向将不胜感激。我的最终目标是获取客户信息(地址等),以便我可以将其插入我正在处理的新数据库中
您的数据包含换行符,组合框每条记录仅显示一行。
要显示数据,您可以替换行源中的换行符。
SELECT Replace([CustomerName],vbCrLf, " ") as CName FROM table
' vbCrLf is the VBA constant for linebreaks (Cr - Carrige Return, Lf - LineFeed)
这是糟糕的数据库规范化(假设您想搜索一个等于城市的客户名称,例如巴黎)。每行应该是 table 中的一个单独字段(以及邮政编码)。如果每个数据都有换行符(例如没有街道 -> 空行),您可以将数据拆分到新字段中。
'Put this code in a module
'Split function
Public function splitCustomerName(ByVal strCustomerName as String, ByVal index as long) as String
Dim arrCustomerName As Variant ' or declare a fixed array if you know the number of lines
arrCustomerName = Split(strCustomername,vbCrLf)
splitCustomerName = arrCustomerName(index)
End Function
查询
UPDATE table SET newCustomerName = splitCustomerName([table].[CustomerName],0)
, newCustomerStreet = splitCustomerName([table].[CustomerName],1)
, newCustomerCity = splitCustomerName([table].[CustomerName],2);
只需为姓名、街道和城市创建必要的列,然后 运行 查询。 如果您删除 CostumerName 列并重命名 table(例如 newTable),您可以使用 table 的旧名称创建一个查询,其行为类似于您的旧 table.
SELECT *
, newCustomerName & vbCrLf & newCustomerStreet & vbCrLf & newCustomerCity as CustomerName
FROM newTable