Sql 如何删除中间初始ms访问的周期
我有两张桌子,一张桌子需要在另一张桌子上找到匹配的 假设我有表1和主文件表。表1有一个与主文件相同的名称字段 但table1名称字段有不同的值,因为它只有中间的首字母,而主文件有中间的名称 现在我想从主文件中获取另一个字段值,称为“性别”,因为表1中的性别字段没有值 该表如下所示:Sql 如何删除中间初始ms访问的周期,sql,ms-access,ms-access-2010,Sql,Ms Access,Ms Access 2010,我有两张桌子,一张桌子需要在另一张桌子上找到匹配的 假设我有表1和主文件表。表1有一个与主文件相同的名称字段 但table1名称字段有不同的值,因为它只有中间的首字母,而主文件有中间的名称 现在我想从主文件中获取另一个字段值,称为“性别”,因为表1中的性别字段没有值 该表如下所示: Table1 Masterfiles Name Gender Name
Table1 Masterfiles
Name Gender Name Gender
Smith, John E. Smith, John Estaw M
Canard, Donald R Canard, Donald Reever M
因为我在表1中有很多记录需要获取性别字段的值,所以我需要以编程方式进行
目前我有以下代码:
Dim db As Database
Dim rs As DAO.Recordset
Dim rs2 As DAO.Recordset
Dim strSQL As String
Set db = CurrentDb
Set rs = db.OpenRecordset("Table1")
Do While Not rs.EOF
strSQL = "SELECT [Name], Gender FROM Masterfiles WHERE [Name] Like '%" & Me!txtName & "%'"
Set rs2 = db.OpenRecordset(strSQL)
If rs2.RecordCount > 0 Then
rs!Gender = rs2!Gender
End If
Loop
<> p>但此代码不会得到任何结果,因为表1中的name字段的值中有一个在中间初始的周期,而另一个行没有句点。请参考上面的样本数据。“Smith,John”的中间首字母有句号,“Canard,Donald”没有句号
那么,我如何查询主文件并获取性别字段的值并将其放入table1性别字段中呢?您在VB中有名称;在搜索之前,最好使用VB删除名称末尾的任何
:
strSQL = "SELECT [Name], Gender FROM Masterfiles WHERE [Name] Like '%" & replace(Me!txtName,".","") & "%'"
Dim searchName as String
If Me!txtName.Substring(Me!txtName.Length - 1,1) = '.' Then
searchName = Me!txtName.Substring(0,Me!txtName.Length - 1)
Else
searchName = Me!txtName
End If
strSQL = "SELECT [Name] FROM Masterfiles WHERE [Name] Like '%" & searchName & "%'"
但是,从长远来看,您可能应该修复您的设计:
- 给每个人一个在所有表中都相同的数字ID李>
- 将名称拆分为第一个、中间和最后一个字段
- 使用单个表存储个人独有的所有信息。然后使用ID将其链接到其他表