---
title: "arbeta med 2 olika tabeller i en databas?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/69157-arbeta-med-2-olika-tabeller-i-en-databas"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "M.Cheraghi"
published: "2003-02-23T20:15:16.000Z"
updated: "2003-02-25T15:07:37.000Z"
replies: 18
views: 382
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/asp/69157-arbeta-med-2-olika-tabeller-i-en-databas"
---

# arbeta med 2 olika tabeller i en databas?

## #1 — M.Cheraghi, 2003-02-23T20:15Z

Tjenare.. 

jag har ett litet dilemma!
jag har en tabell där alla som är medlemmar står.
sen har jag en till tabell i databasen där "systemmedelanden "står! så vill jag skicka ett medelande till alla andvändare! varsitt medelande till varje medlem!
men jag har inte kommit i underfund med hur jag ska göra för att få det och fungera!

altså jobba med 2 tabeller

/MVH

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

## #2 — LarsG, 2003-02-23T20:33Z

```
set rs = "select message,username from members,messages"
while not rs.eof
'skicka
rs.movenext
wend
```

Hur gör du sen så att du inte skickar allt en gång till? Tra du bort dom eller har du något statusfält?

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

## #3 — Cannabis_Tomten, 2003-02-23T20:37Z

> **LarsG skrev:**
>
> ```
> set rs = "select message,username from members,messages"
> while not rs.eof
> 'skicka
> rs.movenext
> wend
> ```
>
> 
> 
> Hur gör du sen så att du inte skickar allt en gång till? Tra du bort dom eller har du något statusfält?

h
mm jag hade tänkt att så här

```
[members]
- username

[systemmess]
- till
- medelande
- status
```

dvs hämta ut alla andvändarnamnen, å loopa medelandet i systemmess tabellen i databasen..

\* till = motagaren
\* medelande = medelandet om ni inte listat ut det :P
\* status = om det är läst eller in (0 eller 1)

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

## #4 — LarsG, 2003-02-23T21:45Z

Jaha det var ju en annan sak.

Innehåller till och username samma värde eller hur är tabellerna relaterade?

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

## #5 — Cannabis_Tomten, 2003-02-23T21:51Z

> **LarsG skrev:**
>
> Jaha det var ju en annan sak.
> 
> Innehåller till och username samma värde eller hur är tabellerna relaterade?

precis... username (ligger i members ) innehåller andvändarnamn, och till (ligger i systemmess) ska innehålla vem medelandet ska gå till... dvs dem ska innehålla samma värde

å jag vill loopa medelandet till alla andvändare, som finns i members tabellen.

//MVH

R) fixade till lite särskrivning.. :P

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

## #6 — cyprys, 2003-02-23T22:09Z

Detta skapar ett nytt meddeande till varje medlem

```
Set Rs = conn.execute("SELECT username FROM members")
Do until Rs.EOF
conn.execute("INSERT INTO systemmess (till, meddelande, status) VALUES(" & Rs("username") & ", 'mess', 'status')")
Rs.MoveNext
Loop
```

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

## #7 — LarsG, 2003-02-23T22:12Z

Vad är det då för information du behöver från tabellen members? Email kanske eller vad menar du mes skicka?

```
'öppna databas
q = "select medelande, till,emailadress " & _
" from members m inner join systemmess s" & _
" on m.username = s.till " & _
" where status = 1 "
set rs = connect.execute(q)

while not rs.eof
  on error resume next
 'skicka mail
  on error goto 0
 if err.number <> 0 then
    'hantera felet. Hur vill du ha det?
 else
    connect.execute "update systemmess set status = 0 where till = '" & till & "'",,128
 end if
  rs.movenext
wend
'stäng
```

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

## #8 — Cannabis_Tomten, 2003-02-23T22:23Z

> **LarsG skrev:**
>
> Vad är det då för information du behöver från tabellen members? Email kanske eller vad menar du mes skicka?
> 
>
>
> ```
> 'öppna databas
> q = "select medelande, till,emailadress " & _
> " from members m inner join systemmess s" & _
> " on m.username = s.till " & _
> " where status = 1 "
> set rs = connect.execute(q)
> 
> while not rs.eof
>   on error resume next
>  'skicka mail
>   on error goto 0
>  if err.number <> 0 then
>     'hantera felet. Hur vill du ha det?
>  else
>     connect.execute "update systemmess set status = 0 where till = '" & till & "'",,128
>  end if
>   rs.movenext
> wend
> 'stäng
> ```

det är ett community för vår skola, o jag ska **inte** hämta email, utan messet ska skickas internt som du vet i communitys :P
bara hämta andvändarnamn, allihoppa från tabellen members samt loopa in dem i "systemmess" tabellen tillsammans med medelandet som skall skickas ut till samtliga personer som finns under members

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

## #9 — Cannabis_Tomten, 2003-02-24T22:40Z

nehepp, inget svar här inte,  LarsG kanske glömt bort tråden?

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

## #10 — cyprys, 2003-02-25T12:47Z

Hmm. Hur var mitt exempel fel?

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

## #11 — Cannabis_Tomten, 2003-02-25T14:16Z

> **cyprys skrev:**
>
> Hmm. Hur var mitt exempel fel?

OMG, jag måste till synsam snarast :P jag såg inte ens att du hade svarat :) ber så hemst mycket om ursäkt fördet!!!

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

## #12 — Cannabis_Tomten, 2003-02-25T14:38Z

okej nu har jag pulat lite med din kod Cyprys, men jag får ett error hur jag än vrider och vänder på det

> Feltyp:
> Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
> \[Microsoft\]\[Drivrutin för ODBC Microsoft Access\] Syntaxfel i INSERT INTO-uttryck.
> /weborg/test.asp, line 13

och med koden... rad 13 är **bold**

```
<%
Set conn = Server.CreateObject("ADODB.Connection")
Conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("databaser/members.mdb")&";"

Set Rs = conn.execute("SELECT username FROM members")
Do until Rs.EOF

user = RS("username")
read = "0"
tid = now
mess = "hej gay"

[b]conn.execute("INSERT INTO systemmess (till, medelande, time, read) VALUES( '"&user&"', '"&mess&"', "&tid&", "&read&")")[/b]
Rs.MoveNext
Loop

RS.close
Conn.close
%>
```

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

## #13 — cyprys, 2003-02-25T14:48Z

Kan tänka mig att user är integer-kolumn

```
conn.execute("INSERT INTO systemmess (till, medelande, time, read) VALUES("&user&", '"&mess&"', "&tid&", "&read&")")
```

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

## #14 — Cannabis_Tomten, 2003-02-25T14:51Z

jag får samma fel :( på samma rad.. även fast jag tog bort '-tecken från user

men ska det inte se ut så här???

```
Set Rs = conn.execute("INSERT INTO systemmess (till, medelande, time, read) VALUES('"&user&"', '"&mess&"', "&tid&", "&read&")")
```

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

## #15 — cyprys, 2003-02-25T14:52Z

Hmm. Testa att sätta \[runt\] time och read.. Tror att de är ord man helst inte ska använda.

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

## #16 — Cannabis_Tomten, 2003-02-25T14:54Z

> **cyprys skrev:**
>
> Hmm. Testa att sätta \[runt\] time och read.. Tror att de är ord man helst inte ska använda.

hur menar du?!?

men ska det inte vara 

SET RS = conn.execute. på insert strängen?

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

## #17 — Engine^, 2003-02-25T14:57Z

```
conn.execute "INSERT INTO systemmess (till, medelande, [b][time][/b], [b][read][/b])" & _
" VALUES('"& user &"', '"& mess &"', "& tid &", "& read &")", , 128
```

**/r:** Just det... inget Set Rs...

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

## #18 — @nders, 2003-02-25T14:59Z

Nej, inte *Set RS =* .
Vi ska ju inte ha någon data tillbaka, då ska vi inte heller skapa något recordset.

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

## #19 — Cannabis_Tomten, 2003-02-25T15:07Z

pustar ut... nu fungerar det! över lycklig... wooohooo =)

skriver ut en fullständig kod för dem som andvänder dökfunktionen nångång 

```
<%
Set conn = Server.CreateObject("ADODB.Connection")
Conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("databaser/members.mdb")&";"

Set Rs = conn.execute("SELECT username FROM members")
Do until Rs.EOF

user = RS("username")
read = "0"
tid = now
mess = "hej gay"

conn.execute("INSERT INTO systemmess (till, medelande, [tid], [status])" & _
" VALUES('"&user&"', '"&mess&"', '"&now&"', "&read&")")

Rs.MoveNext
Loop

RS.close
Conn.close
%>
```

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/69157-arbeta-med-2-olika-tabeller-i-en-databas
