---
title: "Anropa Sub i VB6"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/142193-anropa-sub-i-vb6"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "Pedda"
published: "2006-02-09T08:32:25.000Z"
updated: "2006-02-09T08:53:42.000Z"
replies: 3
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/142193-anropa-sub-i-vb6"
---

# Anropa Sub i VB6

## #1 — Pedda, 2006-02-09T08:32Z

Har aldrig suttit med VB6 innan så här kommer en nybörjarfråga

Om jag har en Sub

```
Private Sub dbLarmIn(Datum As String, splititem() As String, _
    rs_larmtaggar As Recordset)
    
    Set db_larmIn = OpenDatabase(App.Path & "\larm.mdb")
    Set rs_larmIn = db_larmIn.OpenRecordset("larm", dbOpenDynaset)
    rs_larmIn.AddNew
    rs_larmIn("StartTid") = Datum
    rs_larmIn("Givare") = splititem(2)
    rs_larmIn("Larmtext") = rs_larmtaggar("larm")
    rs_larmIn.Update
        
    rs_larmIn.Close
    db_larmIn.Close
End Sub
```

 så trodde jag att man bara skulle kunna köra den med 

```
dbLarmIn(Datum, splititem(2), rs_larmtaggar("larm"))
```

 men det gick ju inte, så hur ska man göra?

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

## #2 — @nders, 2006-02-09T08:33Z

Du kan inte kalla på en sub med parenteser, det borde du fått veta (av felmeddelande ex.). Antingen gör du det med nyckelordet *call*, eller utan parenteser runt parameterlistan.

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

## #3 — Pedda, 2006-02-09T08:44Z

Felmeddelandet sa inte så mycket: Compile Error: Syntax Error

Men det går ju inte att bara kalla på suben utan parenteser för då får jag Argument not optional.

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

## #4 — @nders, 2006-02-09T08:53Z

1) Har du ADODB som referens i ditt projekt?
2) Du har angett att den tredje parametern som skall skickas in till subrutinen skall vara ett recordset. Du skickar in ett fältvärde.
Jag skulle bytt den sista parametern till en sträng, strLarm, och sedan i koden:

```
rs_larmIn("Larmtext") = strLarm
```

Du skickar också in en sträng som parameter 2, men hanterar som en array, ta bort parenteserna i interfacet och när du använder variabeln.

Så här skulle nog jag provat:

```
Private Sub dbLarmIn(Datum As String, splititem As String, _
    strLarmText as String)
    
    Set db_larmIn = OpenDatabase(App.Path & "\larm.mdb")
    Set rs_larmIn = db_larmIn.OpenRecordset("larm", dbOpenDynaset)
    rs_larmIn.AddNew
    rs_larmIn("StartTid") = Datum
    rs_larmIn("Givare") = splititem
    rs_larmIn("Larmtext") = strLarm
    rs_larmIn.Update
        
    rs_larmIn.Close
    db_larmIn.Close
End Sub
```

Och för att kalla på subrutinen:

Antingen:

```
dbLarmIn Datum, splititem(2), rs_larmtaggar("larm")
```

eller:

```
Call dbLarmIn Datum, splititem(2), rs_larmtaggar("larm"))
```

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

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/142193-anropa-sub-i-vb6
