---
title: "Skicka objekt mellan forms"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/65913-skicka-objekt-mellan-forms"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "Vide"
published: "2003-01-23T16:48:47.000Z"
updated: "2003-01-23T19:22:05.000Z"
replies: 6
views: 312
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/dotnet/65913-skicka-objekt-mellan-forms"
---

# Skicka objekt mellan forms

## #1 — Vide, 2003-01-23T16:48Z

Hej!

Hur gör jag för att använda ett objekt jag skapat i en form i en annan form?

Jag har deklarerat objektet publikt i den ena:

```
Public tst As Database

Private Sub Form_Load()
    Set tst = New Database
End Sub
```

Nu vill jag i ett annat form använda samma objekt, men den säger att variabeln inte är dimmad.

Mvh, Vide

Permalänk: https://www.webforum.nu/p/65913

## #2 — niko, 2003-01-23T17:06Z

Enklast via punktnotation: *Form1.tst*, fast det är inte speciellt "snyggt".

Det är bättre att göra referensen *Private* och använda en publik accessfunktion:

```
Private tst As Database

Public Function GetDatabase() as Database
    Set GetDatabase = tst
End Sub
```

Sen anropar du: Form1.GetDatabase() .

Permalänk: https://www.webforum.nu/p/925569

## #3 — Marcus E, 2003-01-23T17:15Z

> **niko skrev:**
>
> Enklast via punktnotation: *Form1.tst*, fast det är inte speciellt "snyggt".

Varför inte? Om variabeln tillhör formuläret är det lämpligast att använda det sättet. Ska variabeln vara global bör den placeras i en modul istället.

Permalänk: https://www.webforum.nu/p/925576

## #4 — Vide, 2003-01-23T17:17Z

Smart! ;)

Jag testade ett annat sätt som fungerade, men det är inte lika OOP:

```
Private tst As Database

Private Sub Form_Load()
    Set tst = TestForm.tst
End Sub
```

Permalänk: https://www.webforum.nu/p/925577

## #5 — niko, 2003-01-23T17:36Z

> **Marcus E skrev:**
>
> Varför inte? Om variabeln tillhör formuläret är det lämpligast att använda det sättet. Ska variabeln vara global bör den placeras i en modul istället.

Visst. Om databasen ska accessas över flera formulär så är det så klart bättre att lägga den i en modul. Tänkte mest att det var bra att visa att det trots allt går.

Att jag sen inte tycker det är "snyggt" att ha en Database publik på ett formulär är av rent subjektiva, estetiska skäl. En databas känns inte som en "naturlig" property på ett formulär i stil med bredd, höjd, position osv .. Fast i praktiken har det ju ingen betydelse.

Men, men .. tycke och smak. :OO

Permalänk: https://www.webforum.nu/p/925614

## #6 — Vide, 2003-01-23T17:38Z

Om jag lägger skapandet av objektet i en vanlig Module, hur kommer jag då åt den i dom andra klasserna.

Egentligen är väl frågan, vad är den egentliga skillnaden på en Modle och en Class Module?

Permalänk: https://www.webforum.nu/p/925618

## #7 — niko, 2003-01-23T19:22Z

En moduls publika variabler och funktioner kan anropas från all övrig kod via punktnotation på modulnamnet (om missförständ inte kan uppstå så kan man hoppa över  modulnamnet och använda enbart variabel- och funktionsnamn).

När det gäller klassmoduler måste normalt först ett objekt av klassen skapas. Därefter kan publika variabler och funktioner anropas med punktnotation på objektnamnet.

En modul kan alltså ses som ett specialfall av en klassmodul där alla funktioner och variabler är statiska och man kan använda en förenklad notation.

Permalänk: https://www.webforum.nu/p/925727

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/65913-skicka-objekt-mellan-forms
