2017-04-10 138 views
0

編輯表,所以我堅持在工作的一個點。 我得到了這個表「IP」。 它與另一個表有關係。 爲了看到我創建查詢的實體的「真實姓名」。LibreOffice基本窗體通過查詢

中看到我的IP表的查詢圖片 - >主機/主機名

我想創建一個形式tbl_IP編輯條目。 在此表單中,我想顯示主機的相關名稱,以查看我正在查看的IP。

但是,當我根據這個查詢創建一個表單時,我可以看到信息但不能編輯它。

我猜這是查詢與另一個表有關係的事實。 但在這一點上,我沒有足夠的經驗。

有人可以解釋如何做到這一點?

在此先感謝。

回答

0

我認爲一個例子勝過千言萬語。下載這個example,我希望是你想要的。

enter image description here

使用此

enter image description here

您可以閒逛,看看它的其餘部分是建立,我認爲。

插入表格控件後,需要右鍵單擊字段,將Host IDPort ID從數字字段更改爲列表框字段。 (請注意,組合框不能在LO中用於此目的,因爲它們只能在單個字段上操作,並且您需要兩個字段,一個ID和一些對該ID進行人類可讀的引用。在Access中,可以組合使用兩個組合框中的任意一個組合框或列表框將工作。)

我故意讓主機查找使用查詢和端口查找使用SLQ,因此您可以看到獲取下拉列表的兩種最常見的方法。

有時候SQL會更好,有時Query會更好,這取決於你在做什麼。如果你的表格是這樣佈置的,你可以直接使用該表格進行下拉,即field1 =顯示的文本或值,field2 = ID鍵,按此順序。但通常我喜歡將我的密鑰ID保留爲所有表中的第一個字段,因此請勿使用此方法。

此外,我已經與左或右連接而不是內部連接相關的表。我幾乎從不使用內連接,因爲當用於鏈接查詢中的兩個表時,如果缺少任何一個,它將隱藏兩個表中的記錄,而不是將缺少的數據顯示爲我更喜歡的空容器。


其他未受請求的一般設計的技巧,我過,我希望你會考慮多年摸索出:

  • 我發現在單數命名的多個表和記錄,並仔細堅持這一點,是最有意義的,例如IPs表(包含多個IP記錄)和IP ID,是表示或指向特定記錄的整數。有時候像Data這樣的單詞是沒有's'的複數形式,所以你將使用Datum作爲記錄,並使用Data作爲表格。

  • 我認爲給出指針和目標完全相同的名稱是最有幫助的,特別是隨着數據庫的增長以及對什麼指向什麼有困惑。讓這兩個名字保持一致,更簡單一些,還有更多的證明。換句話說,在主表中使用名爲Host ID的字段,這指向查找表中名爲Host ID的字段。 (其他人稱這是一個外鍵查找,但我從來沒有發現這個名字非常有用)。

  • 而且我總是嘗試使用名稱本身後綴爲'ID'的名稱命名主鍵,而不是其他一些文字或字符串。這樣當我看到一個ID時,我確信它與哪個表相關聯。因此,例如,如果該表名爲Hosts,則主鍵始終爲Host ID(而不是Hosts ID,因爲這可能是複數,實際上,ID僅引用一條記錄,而不是全部記錄)。例如,您喜歡的IP IDIP_ID都可以正常工作。我發現IP ID(帶空格)更容易讀取和輸入類型,因爲它允許使用多個單詞的更復雜的名稱,如。空格鍵比下劃線更容易。但是這假定你必須引用你所有的標識符,我總是這麼做,但並不總是必需的。我喜歡嚴格遵守這樣的一些基本規則。

希望這可以幫助你。

+0

這看起來對我不利。但我需要更多的功能...有沒有辦法在列出IP之前搜索特定主機名?所以我只看到特定主機的IP。我知道我可以讓一個查詢搜索特定的名稱(LIKE'%'||:Hostname ||'%'),但我不能像你的那樣使用這樣的函數。 –

+0

更改Hosts加入的方式(切換右/左)。然後在查詢中指定您的主機作爲條件。還有其他方法可以搜索,但這是另一個問題的主題。建議你也看看ask.libreoffice.org –

+0

我需要讓它在查詢中搜索還是有另一種方法會更容易? –