📄 如何利用dbgrid显示一对多的关联字段.txt
字号:
主 表 记 录 可 以 显 示 在 标 准 的 列 表 框 或 DBList中 , 估 计 你 已 经 会 了 。 假 定 主 表 选 择 的 病 名 保 存 在 变 量 sDisease中 。
你 可 以 添 加 一 个 Data控 件 , 并 设 置 好 DatabaseName属 性 。 如 果 你 不 想 显 示 Data控 件 , 可 以 将 Data控 件 的 Visible属 性 设 置 为 False。 将 DBGrid控 件 与 Data控 件 关 联 。 DBGrid控 件 最 好 是 和 Data控 件 捆 绑 使 用 , 而 不 是 工 作 在 非 捆 绑 模 式 。
你 可 以 在 用 户 选 择 主 表 记 录 后 使 用 下 面 的 代 码 :
Data1.RecordSource = "SELECT * FROM SubTable WHERE Disease = '" +sDisease + "'"
Data1.Refresh
这 样 你 子 表 就 会 显 示 相 应 记 录 。
Seven来 信 说 :
我 参 考 了 您 关 于 “ 如 何 利 用 DBGrid显 示 一 对 多 的 关 联 字 段 ” 这 一 问 题 的 解 答 , 但 是 我 希 望 作 到 , 在 一 个 主 页 面 中 , 相 对 于 每 一 条 记 录 , ATTACH一 个 一 对 多 的 DBGRID, 显 示 对 应 于 这 条 记 录 唯 一 编 号 的 其 他 相 关 的 一 对 多 的 记 录 数 据 , 为 了 方 便 输 入 , 我 想 实 现 此 DBGRID 不 显 示 与 主 表 相 联 系 的 唯 一 记 录 号 , 并 且 在 每 次 对 子 表 添 加 新 记 录 时 , 自 动 对 每 条 新 记 录 输 入 与 主 表 中 相 同 的 记 录 号 作 为 此 子 表 中 每 条 记 录 的 主 键 。
回 答 :
要 不 显 示 编 号 , 有 两 个 办 法 :
一 是 修 改 Data控 件 的 条 件 就 可 以 。 如 :
Data1.RecordSource = "SELECT Name, Year FROM SubTable WHERE ID = '" +sID + "'"
Data1.Refresh
另 一 种 在 设 计 时 先 按 上 面 的 方 法 设 置 Data1.RecordSource, 然 后 在 DBGrid的 右 键 菜 单 上 选 择 Retrieve Fields。 然 后 可 以 再 修 改 Data1.RecordSource为 “ SELECT * FROM ...” 。 这 样 DBGrid中 显 示 的 字 段 比 Data1.RecordSource中 的 字 段 少 。 这 种 方 法 比 较 适 合 解 决 你 的 “ 每 次 对 子 表 添 加 新 记 录 时 , 自 动 对 每 条 新 记 录 输 入 与 主 表 中 相 同 的 记 录 号 作 为 此 子 表 中 每 条 记 录 的 主 键 ” 的 问 题 。 你 可 以 在 DBGrid1_AfterInsert事 件 中 修 改 Data1.Recordset设 置 ID字 段 。
<END>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -