我不是百分百确定如何言语我的问题!我有一个带有文本的字段(从报告中自动填充),其格式为“Home / area / process /”,可以快速提取区域文本。
它在开始时始终是相同的但是在区域之后它可能是“/ process / more processes”甚至“/ information / more information”所以我不能拉出一些简单的“提取所有东西”Home /和/ process “
希望这有意义我有大约9000个条目来执行此操作:)
先谢谢大家,我对VBA开放/查询Access 2007的任何内容!
答案 0 :(得分:2)
尝试:
Dim exampleString As String
Dim exampleArray() As String
exampleString = [field containing the string you want to split]
exampleArray = Split(exampleString,"/")
例如,如果您在提到的字段中包含以下字符串:home/area/process
字段名称为txtField
,位于名为rptSummary
然后你可以做到以下几点:
Dim exampleString As String
Dim exampleArray() As String
exampleString = Reports!rptSummary!txtField.Value
exampleArray = Split(exampleString, "/")
然后,您可以访问exampleArray
的所有索引,并随心所欲地使用它们。例如,如果要创建一个显示exampleArray
中每个索引内容的弹出窗口,您可以执行以下操作:
MsgBox exampleArray(0) //Creates a message box popup that displays "home"
MsgBox exampleArray(1) //...displays "area"
MsgBox exampleArray(2) //...displays "process"
您还可以使用Mid
功能,这需要更多细节。关于here的信息。
为了更具体,我们需要更多关于字段名称,报告名称,涉及的表格等信息。
答案 1 :(得分:0)
我设法通过创建2个查询并将以下内容添加到新字段来解决此问题 - 一个用于删除字符串的第一部分" Home /"
firstArea: Mid([tblDocuments.Location],InStr([tblDocuments.Location],"/")+1)
然后使用此查询我创建了另一个只是在" /"之前显示下一部分。 (仅使用第一个结果添加了该区域之后的所有其他内容,即" / process bit"
Area: Left([All docs with area.firstArea],InStr([All docs with area.firstArea],"/")-1)
不是我确定的最好的方式,并且" / Process"中没有任何内容的文档存在一些错误。部分但整体工作。
感谢指点,我现在手持解析字符串知识:)