Just nu i M3-nätverket
Gå till innehåll

Uppdatera värden i databasen


Micke_skane

Rekommendera Poster

Micke_skane

Hej,

 

Skulle vilja skriva ut värden(Öppettider) ur en databas i en tabell(formulär) där man kanändra värdena och sen klicka på "Uppdatera"-knappen och då ska dem nya värdena, om man nu har ändrat, uppdatera i databasen.

 

Någon som vte hur man enklast gör detta?

oppettider.asp

[MÄRK]<%[/MÄRK]
[color="#0000ff"]Set[/color] Conn = [b]Server[/b].[color="#0000ff"]CreateObject[/color]([GRÅ]"ADODB.Connection"[/GRÅ])
Conn.Open [GRÅ]"DRIVER={Microsoft Access Driver (*.mdb)};dbq="[/GRÅ] & [b]Server[/b].MapPath([GRÅ]"db/foretags_administration.mdb"[/GRÅ])
[color="#0000ff"]Set[/color] rs = [b]Server[/b].[color="#0000ff"]CreateObject[/color]([GRÅ]"ADODB.Recordset"[/GRÅ])
SQL = [GRÅ]"Select * From oppettider"[/GRÅ]
rs.Open SQL, Conn, 1,2
[MÄRK]%>[/MÄRK]
<form action=[GRÅ]"update_oppettider.asp"[/GRÅ] method=[GRÅ]"post"[/GRÅ]>
[MÄRK]<%[/MÄRK]
[color="#0000ff"]Do[/color] [color="#0000ff"]While[/color] [color="#0000ff"]Not[/color] rs.EOF
[MÄRK]%>[/MÄRK]
<input type=[GRÅ]"Text"[/GRÅ] value=[GRÅ]"hämta ut ett fält( t ex fält1)"[/GRÅ] name=[GRÅ]"dagar_jan"[/GRÅ] [color="#0000ff"]Class[/color]=[GRÅ]"ram"[/GRÅ]><input type=[GRÅ]"Text"[/GRÅ] size=[GRÅ]"6"[/GRÅ] value=[GRÅ]"hämta ut fält 2"[/GRÅ] name=[GRÅ]"dagar_jan"[/GRÅ] [color="#0000ff"]Class[/color]=[GRÅ]"ram"[/GRÅ]><br>
[MÄRK]<%[/MÄRK]
rs.MoveNext
[color="#0000ff"]Loop[/color]
[MÄRK]%>[/MÄRK]
<input type=[GRÅ]"Submit"[/GRÅ] value=[GRÅ]"Update"[/GRÅ]>
</form>

 

update_oppettider Hur kan man skriva Här? Börjat men..Nog fel

[MÄRK]<%[/MÄRK]
[color="#0000ff"]Set[/color] Conn = [b]Server[/b].[color="#0000ff"]CreateObject[/color]([GRÅ]"ADODB.Connection"[/GRÅ])
Conn.Open [GRÅ]"DRIVER={Microsoft Access Driver (*.mdb)};dbq="[/GRÅ] & [b]Server[/b].MapPath([GRÅ]"db/foretags_administration.mdb"[/GRÅ])
[color="#0000ff"]Set[/color] rs = [b]Server[/b].[color="#0000ff"]CreateObject[/color]([GRÅ]"ADODB.Recordset"[/GRÅ])
SQL = [GRÅ]"Select * From oppettider"[/GRÅ]
rs.Open SQL, Conn, 1,2

[color="#0000ff"]With[/color] rs
  .Open SQL, Conn, adOpenDynamic
  .Fields
[color="#0000ff"]End[/color] [color="#0000ff"]With[/color]
rs.Close
Conn.Close
[b]Response[/b].Redirect [GRÅ]"oppenttider_admin.asp"[/GRÅ]
[MÄRK]%>[/MÄRK]

 

Jag har aldrig uppdaterat så detta är nytt för mig!

 

Micke

 

Länk till kommentar
Dela på andra webbplatser

Du bör i ditt fomulär lägga in ett dolt fält som innehåller id (räknaren) för rätt rad i databasen.Tex:

[MÄRK]<%[/MÄRK]
myId=[color="#0000ff"]Replace[/color]([b]Request[/b].Querystring([GRÅ]"id"[/GRÅ]),[GRÅ]"'"[/GRÅ], [GRÅ]""[/GRÅ])
[color="#0000ff"]Set[/color] conn = [b]Server[/b].[color="#0000ff"]CreateObject[/color]([GRÅ]"ADODB.Connection"[/GRÅ])
connString = [GRÅ]"Provider=Microsoft.Jet.OLEDB.4.0; Data Source="[/GRÅ] & [b]Server[/b].MapPath([GRÅ]"db/foretags_administration.mdb"[/GRÅ])
conn.open connString

[color="#0000ff"]Set[/color] RS=conn.[color="#0000ff"]Execute[/color]([GRÅ]"SELECT dagar_jan FROM oppettider WHERE id="[/GRÅ]&myId&[GRÅ]""[/GRÅ])
[color="#0000ff"]If[/color] [color="#0000ff"]Not[/color] RS.EOF [color="#0000ff"]Then[/color]
   dagar_jan=RS(1)
   [MÄRK]%>[/MÄRK]
   <form action=[GRÅ]"update_oppettider.asp"[/GRÅ] method=[GRÅ]"post"[/GRÅ]>
   <input type=[GRÅ]"text"[/GRÅ] name=[GRÅ]"dagar_jan"[/GRÅ] value=[GRÅ]"<%=dagar_jan%>"[/GRÅ]><br>
   <input type=[GRÅ]"hidden"[/GRÅ] name=[GRÅ]"id"[/GRÅ] value=[GRÅ]"<%=myId%>"[/GRÅ]>
   <input type=[GRÅ]"Submit"[/GRÅ] value=[GRÅ]"Update"[/GRÅ]>
   </form>   
   [MÄRK]<%[/MÄRK]
[color="#0000ff"]Else[/color]
   [b]Response[/b].Write([GRÅ]"Hittade ingen rad i databasen med id="[/GRÅ]&myId)
[color="#0000ff"]End[/color] [color="#0000ff"]If[/color]
[color="#0000ff"]Set[/color] RS=[color="#0000ff"]Nothing[/color]
conn.close
[color="#0000ff"]Set[/color] conn=[color="#0000ff"]Nothing[/color]
[MÄRK]%>[/MÄRK]

Detta värde använder du sedan i den SQL-sats som LL ger exempel på. update_oppettider.asp

[MÄRK]<%[/MÄRK]
dagar_jan = [color="#0000ff"]Replace[/color]([b]Request[/b].Form([GRÅ]"dagar_jan"[/GRÅ]),[GRÅ]"'"[/GRÅ], [GRÅ]""[/GRÅ])
id = [color="#0000ff"]Replace[/color]([b]Request[/b].Form([GRÅ]"id"[/GRÅ]),[GRÅ]"'"[/GRÅ], [GRÅ]""[/GRÅ])

[color="#0000ff"]If[/color] id<>[GRÅ]""[/GRÅ] [color="#0000ff"]And[/color] dagar_jan<>[GRÅ]""[/GRÅ] [color="#0000ff"]Then[/color]
   [color="#0000ff"]Set[/color] conn = [b]Server[/b].[color="#0000ff"]CreateObject[/color]([GRÅ]"ADODB.Connection"[/GRÅ])
   connString = [GRÅ]"Provider=Microsoft.Jet.OLEDB.4.0; Data Source="[/GRÅ] & [b]Server[/b].MapPath([GRÅ]"db/foretags_administration.mdb"[/GRÅ])
   conn.open connString

   conn.[color="#0000ff"]Execute[/color]([GRÅ]"UPDATE oppettider SET kolumnNamn = '"[/GRÅ]&dagar_jan&[GRÅ]"' WHERE id="[/GRÅ]&id&[GRÅ]""[/GRÅ])

   conn.close
   [color="#0000ff"]Set[/color] conn=[color="#0000ff"]Nothing[/color]
[color="#0000ff"]End[/color] [color="#0000ff"]If[/color]
[b]Response[/b].Redirect [GRÅ]"oppenttider_admin.asp"[/GRÅ]
[MÄRK]%>[/MÄRK]

eller något liknande... :-)

 

 

/Cluster

------------------------------------------------------

"Den som försummar att dricka ur erfarenhetens källa

kommer troligen att dö av törst i okunnighetens öken."

------> http://eforum.kicks-ass.net <------

 

[inlägget ändrat 2005-05-02 08:38:09 av Cluster]

Länk till kommentar
Dela på andra webbplatser

Micke_skane

Hej,

 

Tack för Era svar!

 

Förstår Allt Utom sambandet mellan hur id ska hämtas ifrån databasen så myid får id-värdet.

Förstår inte QueryString för det innebär väl att man ska få värdet ifrån någon annan sida, eller...

 

Då jag ska köra sidan får jag felmeddelandet:

Syntax error (missing operator) in query expression 'ID='.

(har döpt om id till ID då jag döpt fältnamnet i databasen till ID)

 

Micke

(som gärna dricker ur erfarenhetskällan) :)

 

Länk till kommentar
Dela på andra webbplatser

Hmmm... hur ser din databas ut egentligen?

Jag tycker att det verkar konstigt att du har en kolumn som heter dagar_jan....

Vilka tabeller och kolumner har du?

 

/Cluster

------------------------------------------------------

"Den som försummar att dricka ur erfarenhetens källa

kommer troligen att dö av törst i okunnighetens öken."

------> http://eforum.kicks-ass.net <------

 

Länk till kommentar
Dela på andra webbplatser

Micke_skane

Min databas innehåller tre olika tabeller där tabell oppettider innehåller ID, helgdagar_januari, helgtider_januari osv...

 

Update-satsen ser rätt ut men jag förstår inte hur/var myId ska hämta ID-värdet. Känns som att man skulle skrivit myId = <%=rs("ID")%>

Eller är jag helt ute :)

 

Micke

 

Länk till kommentar
Dela på andra webbplatser

Okej, fortfarande inte riktigt klar över hur designen ser ut...

(Säg inte att du har helgdagar_februari, helgdagar_mars etc i din tabell... )

 

ID är den kolumn som identifierar raden. När du skall ändra värden i en rad (en eller flera av dess kolumner) så vet du ju vilken rad det är som du vill uppdatera. Då använder du ID:t för den raden och anropar adminsidan (formuläret) med querystringvariabeln id=1 (tex).

 

 

/Cluster

------------------------------------------------------

"Den som försummar att dricka ur erfarenhetens källa

kommer troligen att dö av törst i okunnighetens öken."

------> http://eforum.kicks-ass.net <------

 

Länk till kommentar
Dela på andra webbplatser

Micke_skane

Varför ska jag inte ha helgdagar_januari osv i databasen?

Det är Så jag har, dock inte Alla månaderna :)

Typ såhär: ID , helgdagar_januari, helgtider_januari.

Sen då på post 1 vilken dag och vilken tid

Post 2 likadant...

 

Hur hade Du gjort fälten om det finns olika dagar i några olika månader på året som du kanske vill ändra öppettider på?

 

Som sagt; Jag lyssnar gärna så man kan lära sig :)

 

Varför får jag flemeddelandet då jag ska köra oppettider_admin.asp ang ID-numret? Se tidigare brev.

 

Micke

 

 

 

Länk till kommentar
Dela på andra webbplatser

Jag skulle ha utgått från "normalläget" dvs att man har vissa öppettider (och lunchstängt) Mån-Fre, andra för Lördagar samt ytterligare andra för Söndagar.

Sedan måste man hantera öppettider helgdagar samt helgdagar då man har stängt.

Se snabbt ex. i bif. bild.

 

För att visa så hämtar du öppettider samt kollar aktuellt datum i helgöppettider och helgstängt.

 

När du ska ändra (för helgerna så lägger du till en ny rad med det datum som den skall gälla) så hämtar du rad med rätt id.

 

/Cluster

------------------------------------------------------

"Den som försummar att dricka ur erfarenhetens källa

kommer troligen att dö av törst i okunnighetens öken."

------> http://eforum.kicks-ass.net <------

 

[inlägget ändrat 2005-05-02 12:59:47 av Cluster]

707172_thumb.jpg

Länk till kommentar
Dela på andra webbplatser

Micke_skane

Ska kolla på hur du menar!

Låter bra.

 

Och då hade jag inte fått felmeddelandet...

 

Micke

 

Länk till kommentar
Dela på andra webbplatser

Micke_skane

Jaha, har kollat nu!

 

Fråga:

Menar du att DAtum-fältet i tabellerna helgdagar resp helgstängt ska vara av typen datum eller text? Tror datum men man vet ju inte :)

 

Vad menar du med:

När du ska ändra (för helgerna så lägger du till en ny rad med det datum som den skall gälla) så hämtar du rad med rätt id.

Skapar man en ny rad eller byts värdena ut på den man ändrar i?

 

Micke

 

Länk till kommentar
Dela på andra webbplatser

Menar du att DAtum-fältet i tabellerna helgdagar resp helgstängt ska vara av typen datum eller text?
Det avgör du själv, men jag hade använt datumformat.

 

Skapar man en ny rad eller byts värdena ut på den man ändrar i?
Varje helgdag (varesig det gäller stängt eller öppettider) är en ny rad. Då kan du ha kvar "historiska data" parallelt med aktuella helgdagar samt framtida kända helgdagar.

 

/Cluster

------------------------------------------------------

"Den som försummar att dricka ur erfarenhetens källa

kommer troligen att dö av törst i okunnighetens öken."

------> http://eforum.kicks-ass.net <------

 

Länk till kommentar
Dela på andra webbplatser

Micke_skane

Svårt att se hur det ska kunna bero på bara datumet då man kanske vill ändra namnet på helgdagen och var den infaller. Helgdagarna är ju ändå bestämda innan så skulle man inte kunna ha fält där dem löper under?

Typ helgdagar_jan och i ett fält skriva in tiderna?

Så här många olika dagar kan det vara :)

 

Hade du fortfarande kört på Ditt förslag när du ser detta?

 

V 48 Lördag 9–16

 

V 49 - 51

Måndag–Fredag 9–18

Lördag 9–16

Söndag 10–16

 

V 52 Torsdag 9–18

Måndag–Onsdag 9–20

Söndag 10–16

 

Helgdagar i januari

Nyårsdagen Stängt

Trettondedagsafton 10-16

Trettondedagen Stängt

Helgdagar i april

Skärtorsdagen 10-18

Långfredagen 11-16

Påskafton 10-16

Påskdagen 11-16

Annandagpåsk 11-16

Valborgsmässoafton 10-18

 

Helgdagar i maj

1:a maj 11-16

Kristi Himmelfärdsdag 11-16

 

Helgdagar i juni

Midsommarafton 10-14

Midsommardagen Stängt

Pingstafton 10-16

Pingstdagen 11-16

6 Juni 11-16

 

Helgdagar i oktober

Alla Helgons dag 11-16

 

Öppettider i december

Julafton 9-12

Juldagen Stängt

Annandag jul 10-16

27/12 – 30/12 10-18

Nyårsafton 10-14

 

Micke

 

 

 

Länk till kommentar
Dela på andra webbplatser

Svårt att se hur det ska kunna bero på bara datumet då man kanske vill ändra namnet på helgdagen och var den infaller.
Va? Var den infaller har väl i hög grad att göra med datumet... Oavsett om den infaller första måndagen i den tredje månaden eller enligt någon annan "logisk" regel så är det ju ett datum.

För namnet så är det bara lägga till en kolumn för det i tabellen.

 

Hade du fortfarande kört på Ditt förslag när du ser detta?
Ja. Det blir ju lika mycket att registrera oavsett i vilket fält detta registras...

 

Visst får man ibland göra avkall på god databasdesign (normaliseringsreglerna) för att få till det. Men man bör utgå från en korrekt design för att försäkra sig om datats integritet och databasens användbarhet framåt.

 

 

/Cluster

------------------------------------------------------

"Den som försummar att dricka ur erfarenhetens källa

kommer troligen att dö av törst i okunnighetens öken."

------> http://eforum.kicks-ass.net <------

 

Länk till kommentar
Dela på andra webbplatser

Micke_skane

Jaa...:) Det lät kanske lite tokigt!

Klart datumet har betydelse men det jag funderade över var mer om man kunde bygga upp den på vad dagarna heter osv...

 

För om man använder Ditt förslag så Byggs databasen ut? Tanken är ifrån mig att jag inte vill bygga ut databasen varje gång man ändrar helgtider/dagar.

 

Micke

 

Länk till kommentar
Dela på andra webbplatser

För om man använder Ditt förslag så Byggs databasen ut?

Japp

Tanken är ifrån mig att jag inte vill bygga ut databasen varje gång man ändrar helgtider/dagar.
Därför att...

 

/Cluster

------------------------------------------------------

"Den som försummar att dricka ur erfarenhetens källa

kommer troligen att dö av törst i okunnighetens öken."

------> http://eforum.kicks-ass.net <------

 

Länk till kommentar
Dela på andra webbplatser

Micke_skane

Har gjort en databas som Du förslog där jag ska hämta helgnamnet ifrån tabellen helgdagar. Men då jag ska köra sidan får jag fortfarande felmeddelandet:

Syntax error (missing operator) in query expression 'ID='.

 

Känns som om den inte kan hämta nått med querystring för det innebär väl att man kommer ifrån någon annan sida innan? Jag går ju rakt in på sidan.

Eller hur fungerar:

myId=[color="#0000ff"]Replace[/color]([b]Request[/b].Querystring([GRÅ]"ID"[/GRÅ]),[GRÅ]"'"[/GRÅ], [GRÅ]""[/GRÅ])

 

Micke

 

Länk till kommentar
Dela på andra webbplatser

Känns som om den inte kan hämta nått med querystring för det innebär väl att man kommer ifrån någon annan sida innan? Jag går ju rakt in på sidan.
Som jag tidigare sagt så vet du ju vilken rad det är i databasen som du vill ändra. Det är detta id som skall anges som en Querystringvariabel. Ett sätt är ju att först lista alla rader i tabellen och göra dem klickbara. Tex[log]
[MÄRK]<%[/MÄRK]
myId=[color="#0000ff"]Replace[/color]([b]Request[/b].Querystring([GRÅ]"id"[/GRÅ]),[GRÅ]"'"[/GRÅ], [GRÅ]""[/GRÅ])

[color="#0000ff"]Set[/color] conn = [b]Server[/b].[color="#0000ff"]CreateObject[/color]([GRÅ]"ADODB.Connection"[/GRÅ])
connString = [GRÅ]"Provider=Microsoft.Jet.OLEDB.4.0; Data Source="[/GRÅ] & [b]Server[/b].MapPath([GRÅ]"db/foretags_administration.mdb"[/GRÅ])
conn.open connString

[color="#0000ff"]If[/color] myId=[GRÅ]""[/GRÅ] [color="#0000ff"]Then[/color]
   [color="#0000ff"]Set[/color] RS=conn.[color="#0000ff"]Execute[/color]([GRÅ]"SELECT id, kolumnNamn FROM tabellnamn"[/GRÅ])
   [color="#0000ff"]If[/color] [color="#0000ff"]Not[/color] RS.EOF [color="#0000ff"]Then[/color]
      [color="#0000ff"]Do[/color] Until RS.EOF
         [b]Response[/b].Write([GRÅ]"<A HREF="[/GRÅ][GRÅ]"?id="[/GRÅ]&RS(0)&[GRÅ]""[/GRÅ][GRÅ]">RS(1)</A><br>"[/GRÅ])
         RS.MoveNext
         [color="#0000ff"]Loop[/color]
   [color="#0000ff"]End[/color] [color="#0000ff"]If[/color]
   [color="#0000ff"]Set[/color] RS=[color="#0000ff"]Nothing[/color]
[color="#0000ff"]Else[/color]
   [color="#0000ff"]Set[/color] RS=conn.[color="#0000ff"]Execute[/color]([GRÅ]"SELECT kolumnNamn FROM tabellnamn WHERE id="[/GRÅ]&myId&[GRÅ]""[/GRÅ])
   [color="#0000ff"]If[/color] [color="#0000ff"]Not[/color] RS.EOF [color="#0000ff"]Then[/color]
      kolumnNamn=RS(0)
      [MÄRK]%>[/MÄRK]
      <form action=[GRÅ]"update_oppettider.asp"[/GRÅ] method=[GRÅ]"post"[/GRÅ]>
      <input type=[GRÅ]"text"[/GRÅ] name=[GRÅ]"kolumnNamn"[/GRÅ] value=[GRÅ]"<%=kolumnNamn%>"[/GRÅ]><br>
      <input type=[GRÅ]"hidden"[/GRÅ] name=[GRÅ]"id"[/GRÅ] value=[GRÅ]"<%=myId%>"[/GRÅ]>
      <input type=[GRÅ]"Submit"[/GRÅ] value=[GRÅ]"Update"[/GRÅ]>
      </form>
      [MÄRK]<%[/MÄRK]
   [color="#0000ff"]Else[/color]
      [b]Response[/b].Write([GRÅ]"Hittade ingen rad i databasen med id="[/GRÅ]&myId)
   [color="#0000ff"]End[/color] [color="#0000ff"]If[/color]
   [color="#0000ff"]Set[/color] RS=[color="#0000ff"]Nothing[/color]
[color="#0000ff"]End[/color] [color="#0000ff"]If[/color]
conn.close
[color="#0000ff"]Set[/color] conn=[color="#0000ff"]Nothing[/color]
[MÄRK]%>[/MÄRK]

[/log]Detta utifrån db i din första kod. Du får byta ut kolumn- och tabellnamn mot de som du har nu.

 

/Cluster

------------------------------------------------------

"Den som försummar att dricka ur erfarenhetens källa

kommer troligen att dö av törst i okunnighetens öken."

------> http://eforum.kicks-ass.net <------

 

[inlägget ändrat 2005-05-02 15:20:17 av Cluster]

Länk till kommentar
Dela på andra webbplatser

Micke_skane

Hello,

 

Har försökt att få fram värdet ur ett fält men jag får hela tiden felmeddelandet:

Syntax error (missing operator) in query expression 'ID='.

 

Måste jag göra nått mer innan jag kan köra sidan? Behöver jag skapa länkar innan för att berätta för querystringen vilket id som gäller.

 

Skulle man inte bara kunna lista alla kolummer man har i databasen i ett fomulär och sedan via:

Update helgdagar [color="#0000ff"]Set[/color] helgnamn = [color="#006400"]'[GRÅ]"&helgnamn&"[/GRÅ]'[/color]

 

Då uppdaterar man hela fältet men det kan väl inte innebära så mycket?

 

Jag har försökt få fram sidan men den strejkar ang ID-t!

 

Micke

 

 

Länk till kommentar
Dela på andra webbplatser

Micke_skane

Problemet med ID-t är på sidan där jag vill lista ut värdena ur databasen.

 

 

 

Länk till kommentar
Dela på andra webbplatser

My bad :-(

Ska så klart vara

myId=[color="#0000ff"]Replace[/color]([b]Request[/b].Form([GRÅ]"id"[/GRÅ]),[GRÅ]"'"[/GRÅ], [GRÅ]""[/GRÅ])

eller bara

myId=[color="#0000ff"]Replace[/color]([b]Request[/b]([GRÅ]"id"[/GRÅ]),[GRÅ]"'"[/GRÅ], [GRÅ]""[/GRÅ])

 

/Cluster

------------------------------------------------------

"Den som försummar att dricka ur erfarenhetens källa

kommer troligen att dö av törst i okunnighetens öken."

------> http://eforum.kicks-ass.net <------

 

Länk till kommentar
Dela på andra webbplatser

Micke_skane

God kväll :)

 

Sitter fortfarande och försöker :)

Blev glad att du kanske hade skrivit fel för då var Det lösningen men inte :)

Provade både med Form och utan Form!

Fick ändå:

Syntax error (missing operator) [color="#0000ff"]In[/color] query expression [color="#006400"]'ID='. [/color]

 

Nu ser det ut såhär:

 

oppenttider_admin_idg.asp

<body>
[MÄRK]<%[/MÄRK]
[color="#006400"]' ska försöka hämta id-numret så jag vet Var databsen ska uppdatera[/color]
[color="#006400"]' Får felmeddelande då jag kör sidan:[/color]
[color="#006400"]' Syntax error (missing operator) in query expression 'ID='.[/color]
myId=[color="#0000ff"]Replace[/color]([b]Request[/b]([GRÅ]"ID"[/GRÅ]),[GRÅ]"'"[/GRÅ], [GRÅ]""[/GRÅ])
[color="#0000ff"]Set[/color] conn = [b]Server[/b].[color="#0000ff"]CreateObject[/color]([GRÅ]"ADODB.Connection"[/GRÅ])
connString = [GRÅ]"Provider=Microsoft.Jet.OLEDB.4.0; Data Source="[/GRÅ] & [b]Server[/b].MapPath([GRÅ]"db/foretags_administration.mdb"[/GRÅ])
conn.open connString
[color="#006400"]' Här skriver jag bara ut just nu Ett fält men jag vill skriva ut flera [/color]
[color="#006400"]' och updatera hela databasen en med dem fälten man ändrat i. Bara testar funktionen nu![/color]
[color="#0000ff"]Set[/color] RS=conn.[color="#0000ff"]Execute[/color]([GRÅ]"SELECT helgnamn, oppnar, stanger FROM helgdagar WHERE ID="[/GRÅ]&myId&[GRÅ]""[/GRÅ])
[color="#0000ff"]If[/color] [color="#0000ff"]Not[/color] RS.EOF [color="#0000ff"]Then[/color]
   helgnamn=RS(1)
   [MÄRK]%>[/MÄRK]
   <form action=[GRÅ]"update_oppettider_idg.asp"[/GRÅ] method=[GRÅ]"post"[/GRÅ]>
   <input type=[GRÅ]"text"[/GRÅ] name=[GRÅ]"helgnamn"[/GRÅ] value=[GRÅ]"<%=helgnamn%>"[/GRÅ]>
   <input type=[GRÅ]"text"[/GRÅ] name=[GRÅ]"oppnar"[/GRÅ] value=[GRÅ]"<%=oppnar%>"[/GRÅ]>
   <input type=[GRÅ]"text"[/GRÅ] name=[GRÅ]"stanger"[/GRÅ] value=[GRÅ]"<%=stanger%>"[/GRÅ]>
   <input type=[GRÅ]"hidden"[/GRÅ] name=[GRÅ]"ID"[/GRÅ] value=[GRÅ]"<%=myId%>"[/GRÅ]>
   <input type=[GRÅ]"Submit"[/GRÅ] value=[GRÅ]"Update"[/GRÅ]>
   </form> 
   [MÄRK]<%[/MÄRK]
[color="#0000ff"]Else[/color]
   [b]Response[/b].Write([GRÅ]"Hittade ingen rad i databasen med ID="[/GRÅ]&myId)
[color="#0000ff"]End[/color] [color="#0000ff"]If[/color]
[color="#0000ff"]Set[/color] RS=[color="#0000ff"]Nothing[/color]
conn.close
[color="#0000ff"]Set[/color] conn=[color="#0000ff"]Nothing[/color]
[MÄRK]%>[/MÄRK]
</body>

 

update_oppettider_idg.asp

[MÄRK]<%[/MÄRK]
helgnamn = [color="#0000ff"]Replace[/color]([b]Request[/b].Form([GRÅ]"helgnamn"[/GRÅ]),[GRÅ]"'"[/GRÅ], [GRÅ]""[/GRÅ])
oppnar = [color="#0000ff"]Replace[/color]([b]Request[/b].Form([GRÅ]"oppnar"[/GRÅ]),[GRÅ]"'"[/GRÅ], [GRÅ]""[/GRÅ])
stanger = [color="#0000ff"]Replace[/color]([b]Request[/b].Form([GRÅ]"stanger"[/GRÅ]),[GRÅ]"'"[/GRÅ], [GRÅ]""[/GRÅ])
ID = [color="#0000ff"]Replace[/color]([b]Request[/b].Form([GRÅ]"ID"[/GRÅ]),[GRÅ]"'"[/GRÅ], [GRÅ]""[/GRÅ])

[color="#0000ff"]If[/color] ID <> [GRÅ]""[/GRÅ] [color="#0000ff"]And[/color] helgnamn <> [GRÅ]""[/GRÅ] [color="#0000ff"]Then[/color]
   [color="#0000ff"]Set[/color] conn = [b]Server[/b].[color="#0000ff"]CreateObject[/color]([GRÅ]"ADODB.Connection"[/GRÅ])
   connString = [GRÅ]"Provider=Microsoft.Jet.OLEDB.4.0; Data Source="[/GRÅ] & [b]Server[/b].MapPath([GRÅ]"db/foretags_administration.mdb"[/GRÅ])
   conn.open connString

   conn.[color="#0000ff"]Execute[/color]([GRÅ]"UPDATE helgdagar SET helgnamn = '"[/GRÅ]&helgnamn&[GRÅ]"' AND oppnar = '"[/GRÅ]&oppnar&[GRÅ]"' AND stanger = '"[/GRÅ]&stanger&[GRÅ]"' WHERE ID="[/GRÅ]&ID&[GRÅ]""[/GRÅ])

   conn.close
   [color="#0000ff"]Set[/color] conn=[color="#0000ff"]Nothing[/color]
[color="#0000ff"]End[/color] [color="#0000ff"]If[/color]
[b]Response[/b].Redirect [GRÅ]"oppenttider_admin.asp"[/GRÅ]
[MÄRK]%>[/MÄRK]

 

och i tabellen helgdagar finns ID , datum , helgnamn , oppnar , stanger

 

Jag har trippelkollat att alla namn är rätt stavat och finns där dem ska vara men jag får ändå felmeddelandet!

 

Har du haft såhär svårt att få det att fungera då Du gjort en sån här sak?

 

Micke

 

Länk till kommentar
Dela på andra webbplatser

Hej

 

Prova att ändra dessa rader i oppenttider_admin_idg.asp

 

 

<input type="text" name="helgnamn" value="<%=helgnamn%>">

<input type="text" name="oppnar" value="<%=oppnar%>">

<input type="text" name="stanger" value="<%=stanger%>">

<input type="hidden" name="ID" value="<%=myId%>">

<input type="Submit" value="Update">

 

 

till

 

<input type="text" name="helgnamn" value="<%=RS("helgnamn")%>">

<input type="text" name="oppnar" value="<%=RS("oppnar")%>">

<input type="text" name="stanger" value="<%=RS("stanger")%>">

<input type="hidden" name="ID" value="<%=RS("ID")%>">

<input type="Submit" value="Update">

 

 

Nu skickar du aktuella fält för vald ID direkt in i formobjekten som sedan hämtas i update_oppettider_idg.asp

 

LL

 

[inlägget ändrat 2005-05-02 21:44:11 av LL]

Länk till kommentar
Dela på andra webbplatser

Micke_skane

Hej LL,

 

Nu er det ut såhär:

[MÄRK]<%[/MÄRK]
[color="#006400"]' ska försöka hämta id-numret så jag vet Var databsen ska uppdatera[/color]
[color="#006400"]' Får felmeddelande då jag kör sidan:[/color]
[color="#006400"]' Syntax error (missing operator) in query expression 'ID='.[/color]
myId=[color="#0000ff"]Replace[/color]([b]Request[/b]([GRÅ]"ID"[/GRÅ]),[GRÅ]"'"[/GRÅ], [GRÅ]""[/GRÅ])
[color="#0000ff"]Set[/color] conn = [b]Server[/b].[color="#0000ff"]CreateObject[/color]([GRÅ]"ADODB.Connection"[/GRÅ])
connString = [GRÅ]"Provider=Microsoft.Jet.OLEDB.4.0; Data Source="[/GRÅ] & [b]Server[/b].MapPath([GRÅ]"db/foretags_administration.mdb"[/GRÅ])
conn.open connString
[color="#006400"]' Här skriver jag bara ut just nu Ett fält men jag vill skriva ut flera [/color]
[color="#006400"]' och updatera hela databasen en med dem fälten man ändrat i. Bara testar funktionen nu![/color]
[color="#0000ff"]Set[/color] RS=conn.[color="#0000ff"]Execute[/color]([GRÅ]"SELECT helgnamn, oppnar, stanger FROM helgdagar"[/GRÅ])
[color="#0000ff"]If[/color] [color="#0000ff"]Not[/color] RS.EOF [color="#0000ff"]Then[/color]
   helgnamn=RS(0)
   [MÄRK]%>[/MÄRK]
   <form action=[GRÅ]"update_oppettider_idg.asp"[/GRÅ] method=[GRÅ]"post"[/GRÅ]>
   <input type=[GRÅ]"text"[/GRÅ] name=[GRÅ]"helgnamn"[/GRÅ] value=[GRÅ]"<%=RS("[/GRÅ]helgnamn[GRÅ]")%>"[/GRÅ]>
   <input type=[GRÅ]"text"[/GRÅ] name=[GRÅ]"oppnar"[/GRÅ] value=[GRÅ]"<%=RS("[/GRÅ]oppnar[GRÅ]")%>"[/GRÅ]>
   <input type=[GRÅ]"text"[/GRÅ] name=[GRÅ]"stanger"[/GRÅ] value=[GRÅ]"<%=RS("[/GRÅ]stanger[GRÅ]")%>"[/GRÅ]>
   <input type=[GRÅ]"hidden"[/GRÅ] name=[GRÅ]"ID"[/GRÅ] value=[GRÅ]"<%=RS("[/GRÅ]ID[GRÅ]")%>"[/GRÅ]>
   <input type=[GRÅ]"Submit"[/GRÅ] value=[GRÅ]"Update"[/GRÅ]>
   </form> 
   [MÄRK]<%[/MÄRK]
[color="#0000ff"]Else[/color]
   [b]Response[/b].Write([GRÅ]"Hittade ingen rad i databasen med ID="[/GRÅ])
[color="#0000ff"]End[/color] [color="#0000ff"]If[/color]
[color="#0000ff"]Set[/color] RS=[color="#0000ff"]Nothing[/color]
conn.close
[color="#0000ff"]Set[/color] conn=[color="#0000ff"]Nothing[/color]
[MÄRK]%>[/MÄRK]

 

ochnu får jag ju ut värdena då RS ingår men jag får bara fram en post men där är två i tabellen.

Sen får jag också detta felmeddelande:

ADODB.Recordset error '800a0cc1'

 

Item cannot be found in the collection corresponding to the requested name or ordinal.

 

Men den skriver ut EN post (översta)

 

Micke

 

Länk till kommentar
Dela på andra webbplatser

Att ID är tomt beror på att du inte har med det i SELECT-satsen. Testa

[MÄRK]<%[/MÄRK]
[color="#0000ff"]Set[/color] conn = [b]Server[/b].[color="#0000ff"]CreateObject[/color]([GRÅ]"ADODB.Connection"[/GRÅ])
connString = [GRÅ]"Provider=Microsoft.Jet.OLEDB.4.0; Data Source="[/GRÅ] & [b]Server[/b].MapPath([GRÅ]"db/foretags_administration.mdb"[/GRÅ])
conn.open connString
[color="#0000ff"]Set[/color] RS=conn.[color="#0000ff"]Execute[/color]([GRÅ]"SELECT id, helgnamn, oppnar, stanger FROM helgdagar"[/GRÅ])
[color="#0000ff"]If[/color] [color="#0000ff"]Not[/color] RS.EOF [color="#0000ff"]Then[/color]
   [color="#0000ff"]Do[/color] Until RS.EOF
      [MÄRK]%>[/MÄRK]
      <form action=[GRÅ]"update_oppettider_idg.asp"[/GRÅ] method=[GRÅ]"post"[/GRÅ]>
      <input type=[GRÅ]"text"[/GRÅ] name=[GRÅ]"helgnamn"[/GRÅ] value=[GRÅ]"<%=RS("[/GRÅ]helgnamn[GRÅ]")%>"[/GRÅ]>
      <input type=[GRÅ]"text"[/GRÅ] name=[GRÅ]"oppnar"[/GRÅ] value=[GRÅ]"<%=RS("[/GRÅ]oppnar[GRÅ]")%>"[/GRÅ]>
      <input type=[GRÅ]"text"[/GRÅ] name=[GRÅ]"stanger"[/GRÅ] value=[GRÅ]"<%=RS("[/GRÅ]stanger[GRÅ]")%>"[/GRÅ]>
      <input type=[GRÅ]"hidden"[/GRÅ] name=[GRÅ]"ID"[/GRÅ] value=[GRÅ]"<%=RS("[/GRÅ]ID[GRÅ]")%>"[/GRÅ]>
      <input type=[GRÅ]"Submit"[/GRÅ] value=[GRÅ]"Update"[/GRÅ]>
      </form>
      [MÄRK]<%[/MÄRK]
      RS.MoveNext
   [color="#0000ff"]Loop[/color]
[color="#0000ff"]Else[/color]
   [b]Response[/b].Write([GRÅ]"Hittade inga helgdagar!"[/GRÅ])
[color="#0000ff"]End[/color] [color="#0000ff"]If[/color]
[color="#0000ff"]Set[/color] RS=[color="#0000ff"]Nothing[/color]
conn.close
[color="#0000ff"]Set[/color] conn=[color="#0000ff"]Nothing[/color]
[MÄRK]%>[/MÄRK]

 

/Cluster

------------------------------------------------------

"Den som försummar att dricka ur erfarenhetens källa

kommer troligen att dö av törst i okunnighetens öken."

------> http://eforum.kicks-ass.net <------

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...