我需要一些帮助踢首发的方式来验证字符串出现在某一特定领域的表的所有记录的完整性:验证基于基线公式
表阿尔法:
| A-ID* | Description** | Formula** |
|-------|------------------------------|--------------------------|
| A101 | House + 2 bed + 1 bath | TYPH + numbdB + numbathA |
| A212 | Apartment + 1 bed + 1 bath | TYPA + numbdA + numbathA |
| A342 | Condominium + 4 bed + 3 bath | TYPC + numbdC + numbathZ |
*主键;固定长度 **可变长度
现在组成“描述”的项目(表阿尔法[以上])在单独的表中找到:
表布拉沃:
| Housing_ID* | HousingDes** |
|-------------|--------------|
| TYPH | House |
| TYPA | Apartment |
| TYPC | Condominium |
表查理:
| Room_ID* | RoomDes** |
|----------|-----------|
| numbdA | 1 bed |
| numbdB | 2 bed |
| numbdC | 4 bed |
表三角洲:
| Bath_ID* | BathDes** |
|----------|-----------|
| numbathA | 1 bath |
| numbathZ | 3 bath |
*主键;固定长度 **可变长度
现在,我需要一种方法来验证记录(表格Alpha)的“说明”与表格Bravo指定的相关“公式”(表格Alpha)一致 - 三角洲。例如,关于表阿尔法的记录1,记录的“描述”可能被无意中修改。我怎么能“标记”这个不正确的记录?
| A-ID* | Description** | Formula** |
|-------|----------------------------|--------------------------|
| A101 | House"ee" + 2 bed + 1 bath | TYPH + numbdB + numbathA |
如何重建表阿尔法[让我们把这种新的表,表FormAlphaBuild]基于“公式”而已?对于每个“A-ID”,我可以将Table Alpha中的“Description”与表FormAlphaBuild中的“Description”进行比较,然后查询该差异,以便知道哪些记录需要更正。
任何输入,将不胜感激。我的想法如下:
Private Sub VerifyDescription_Click()
Dim dbHouse As Database
Dim rsAlp, rsFAB As Recordset
Dim Description, Formula, Housing_ID, Room_ID, Bath_ID As String
Set dbhouse = CurrentDb
Set rsFAB = dbs.OpenRecordSet ("Table_FormAlphaBuild")
Set rsAlp = dbs.OpenRecordSet ("Table_Alpha")
rsAlp.MoveLast
rsAlp.MoveFirst
Do Until rsAlp.EOF
rsFAB.AddNew
rsFAB![A-ID] = rsAlp![A-ID]
rsFAB![Formula] = rsAlp![Formula]
rsFAB.Update
rsAlp.MoveNext
Loop
rsFAB.MoveLast
rsFAB.MoveFirst
Do Until rsFAB.EOF
Housing_ID = Mid(rsFAB![Formula], 1, 4)
Room_ID = Mid(rsFAB![Formula], 5, 6)
Bath_ID = Mid(rsFAB![Formula], 9)
Description = DLookup("HousingDes", "Table_Bravo") "+" DLookup("RoomDes", "Table_Charlie") "+" DLookup("BathDes", "Table_Delta") & Mid(Bath_ID, x, 8)
我该如何解释一个可变数量的bathroom_IDs?他们总是会在单一的Housing_ID + Room_ID后出现。
有些洞察请 - 如何列出每个“A-ID”的正确描述。
我需要帮助来创建FormAlphaBuild表。一旦我有了这个,我想我可以想出一个比较Alpha“描述”和FormAlphaBuild“描述”的机制。
请使用http://ozh.github.io/ascii-tables/显示在表格的形式,而不是列出了样本数据。请摆脱印刷引用''“'并使用标准引号'”“'代替(双+单引号)。 – Andre
谢谢你,安德烈。我已经更新了我的初始文章。 – Ludwig
可能值得重新访问您的数据库模式(结构)。通常,将多个信息合并到一个列中并不是一个好主意。例如,您可以将您的数据分为三列:房屋类型(可能是在另一张桌子中用简单英文名称查找的键),床数和浴缸数。然后,您可以使用该信息进行查询,以您喜欢的任何格式撰写纯英文描述。有关更多阅读,请查看https://en.wikipedia.org/wiki/Database_normalization –