diff --git a/soitool/codebook_row_adder.py b/soitool/codebook_row_adder.py
index 2372001b36cba575590b9c77fb94c61771d51479..091bf6f7e31901764ae8bbfb52738fdd65ba0014 100644
--- a/soitool/codebook_row_adder.py
+++ b/soitool/codebook_row_adder.py
@@ -10,7 +10,6 @@ from PySide2.QtWidgets import (
     QWidget,
 )
 from PySide2.QtCore import Qt
-from soitool.database import Database
 from soitool.codebook_model_view import CodeBookTableModel, CodeBookTableView
 
 
@@ -29,6 +28,8 @@ class CodebookRowAdder(QWidget):
         database. Therefore, this reference is needed to be able to
         insert new rows, but it is also used to refresh the view when
         the row is inserted.
+    database : soitool.database.Database
+        Database to use.
 
     Raises
     ------
@@ -37,7 +38,7 @@ class CodebookRowAdder(QWidget):
         None (default) or CodeBookTableView.
     """
 
-    def __init__(self, codebook_view=None):
+    def __init__(self, database, codebook_view=None):
         super().__init__()
 
         # Raise error if argument is invalid
@@ -49,6 +50,7 @@ class CodebookRowAdder(QWidget):
                 + "'{}'".format(codebook_view)
             )
 
+        self.database = database
         self.codebook_view = codebook_view
 
         self.create_widgets()
@@ -169,8 +171,6 @@ class CodebookRowAdder(QWidget):
             if len(category_input) > 0:
                 category_input = category_input[0].upper() + category_input[1:]
 
-            db = Database()
-
             try:
                 # If a view is used, remove its model temporarily
                 if self.codebook_view is not None:
@@ -181,13 +181,13 @@ class CodebookRowAdder(QWidget):
                     "INSERT INTO CodeBook(Word, Category, Type)"
                     + "VALUES(?, ?, ?)"
                 )
-                db.conn.execute(
+                self.database.conn.execute(
                     stmt, (word_input, category_input, type_input,)
                 )
 
                 # Add unique code to row and commit changes
-                db.add_code_to(word_input)
-                db.conn.commit()
+                self.database.add_code_to(word_input)
+                self.database.conn.commit()
 
                 # Give feedback and reset input
                 self.label_feedback.setText("Ord/Uttrykk lagt til.")
diff --git a/soitool/codebook_widget.py b/soitool/codebook_widget.py
index 9f418daad940e50385f76b342dd6f3f021c13647..53c45acc884ee1237e87ddafcad31fbfb6864e72 100644
--- a/soitool/codebook_widget.py
+++ b/soitool/codebook_widget.py
@@ -7,12 +7,12 @@ from soitool.codebook_row_adder import CodebookRowAdder
 class CodebookWidget(QWidget):
     """Widget for viewing and editing codebook."""
 
-    def __init__(self):
+    def __init__(self, database):
         super().__init__()
 
         # Create widgets
-        self.view = CodeBookTableView()
-        self.row_adder = CodebookRowAdder()
+        self.view = CodeBookTableView(database)
+        self.row_adder = CodebookRowAdder(database, self.view)
 
         self.create_and_set_layouts()
 
diff --git a/soitool/main_window.py b/soitool/main_window.py
index ad0c15311f257f49e65c40b9179bbe05ff02132d..4cd761f9badc0f5a0e76a6449a85dbfc044cc163 100644
--- a/soitool/main_window.py
+++ b/soitool/main_window.py
@@ -197,7 +197,7 @@ class MainWindow(QMainWindow):
                 break
         # Codebook-tab does not exist, create, add and select tab
         else:
-            tab = CodebookWidget()
+            tab = CodebookWidget(self.database)
             self.tabs.addTab(tab, "Kodebok")
             self.tabs.setCurrentWidget(tab)