几周以来,我一直在努力将我的客户端从使用Corel Paradox迁移到Microsoft Access,因为Paradox已经很久没死了,它最终在我的客户的实际问题上变得无法使用。
由于我的大多数开发都是在服务器端工作,我对VBA和TSQL的了解非常基础,这就是为什么我在掌握以下任务所需的逻辑时遇到了一些麻烦:
作为运行数据库维护和更新的常规脚本的一部分(客户信息,如参加的课程,创建日期,最后一次记录更改的日期,地址等),所有客户都会获得“创建日期”以标记当他们第一次成为客户时,以及“更新日期”,这只是对客户文件进行任何更改的日期。
现在,我的结论是,在数据库表中,我们有八个字段(也包括日期字段),用于客户参加的课程类型。
当我们使用Paradox时,我们有一个脚本可以将master数据库与我们的季度数据集进行比较,并且在找到重复项的地方,脚本将获取课程并将其推回并插入最新的课程数据。
此外,该脚本将采用最新的记录并更新任何已更改的个人信息。
虽然我已经完成了大部分脚本,但我在如何重新创建推迟旧日期以便为新记录腾出空间的功能方面遇到了很多麻烦。
我觉得这可以用数组完成,但是在阅读了tSQL和VBA后,我不确定哪种工具适合这项工作。
提前感谢您的任何帮助
答案 0 :(得分:3)
这不是一个答案,而是试图理解你想要做的事情。
关键词似乎是“我在弄清楚如何重新创建推迟旧日期的功能以便为新记录腾出空间时遇到了很多麻烦。”
这句话是否意味着您有这样的客户记录:
| Oldest | | | | | | Newest |
Course|Date|Course|Date|Course|Date|Course|Date|Course|Date|Course|Date|Course|Date|
然后,当客户参加新课程时,您将丢弃最早的课程/日期,将其他人留在一个插槽中,并在最后插入新的课程/日期。
拜托,请告诉我,我误解了!这是我们在关系数据库出现之前就已经达到的那种技巧。如果客户在一个季度参加八门以上课程怎么办?在过去的30年里,我们让DBMS处理这些并发症。
您应该有一个与客户相关联的课程表格,其中包含“课程和日期”属性。您所要做的就是为每次新的出勤添加新记录。如果您想要一个例程,从Course Attended表中删除旧的出勤记录,那么请写一个。如果他们想要一个显示最近8个出勤率的例程,请编写一个SQL查询来获取它们。