webForumDet fria alternativet

Hämta från rätt kolumn

ASP

8 svar · 348 visningar · startad av Bjarne A

Medlem sedan feb. 2001151 inlägg
Frågan#1

Skulle vilja hämta värden ur databasens kolumner enligt en variabel som räknat fram innan
kolumnerna är då döpta till 1, 2, 3 ,osv
Det funkar med

<%= Rs("2")%>

men inte med

<%= Rs("rutvarde2")%>
<!--#INCLUDE file="adovbs.inc"--> <% Set connect = Server.CreateObject("ADODB.connection")
connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=D:\home1\domanen\db\db2.mdb" 
%>
<%
SQL = "SELECT * FROM 2005 WHERE manad = '10'"
set Rs = connect.execute(SQL) 
%>
<%
startdag = 1
%>
<table border="0" cellspacing="1" cellpadding="1" bgcolor="#6666FF">
  <tr> 
    <td> 
      <div align="center">
      <% rutvarde1 =2 - startdag  %>
      <%IF rutvarde1 < 1 THEN%>bla bla bla<%ELSE%>
      <% = rutvarde1%><%= Rs("rutvarde1")%><%END IF%></div>
    </td>
    <td> 
      <div align="center">
      <% rutvarde2 =3 - startdag  %>
      <%IF rutvarde2 < 1 THEN%>bla bla bla<%ELSE%>
      <% = rutvarde2%><%= Rs("rutvarde2")%><%END IF%></div>
    </td>

Får nog gå och koka makaroner i stället... det är jag bättre på :-)

Medlem sedan mars 20032 667 inlägg
#2

Jag förstod inte din förklaring, men kolumnerna i sql-frågan har ett index tilldelat sig. Första kolumnen 0, andra 1, tredje 2 osv. Du kan alltså nå innehållet i första kolumnen med:

rs(0)

Om ditt recordset nu heter rs.

Medlem sedan juni 200032 967 inlägg
#3

Jag tycker din datamodell luktar väldigt suspekt.
Du borde inte:
*) Kalla tabeller och / eller fält för bara siffror.
*) Lagra ett års poster i en tabell

Vad lagrar du i tabellen? Exakt hur ser den ut, och hur ser innehållet ut?

Medlem sedan feb. 2001151 inlägg
#4

Ja jag kan hämta värdet med <%= Rs("2")%>
Jag har 31 kolumner för varje veckodag och en rad för varje månad 48 månader/rader

man skall kunna se om en gästlägenhet är bokad och boka lediga dagar

Att jag gör så här beror att jag skall kuna välja månad och år
i en rullista och rita upp en tabell enligt det där den förste i månaden hamnar under rätt veckodag

då kan man med "startdag" kunna räkna fram var den skall börja och visa tomma rutor innan

rutans värde minus startdagen, om det är mindre än 1 visa tom ruta större än 1 visa innehållet i den kolumnen. Därför har kolumnen siffernamn

Medlem sedan mars 20032 667 inlägg
#5

Bjarne A skrev:

Jag har 31 kolumner för varje veckodag och en rad för varje månad 48 månader/rader

Jisses, hört talas om normalisering? ;)

Nu fattade jag inte exakt vad du vill uppnå, men varje veckodag bör vara en egen rad i tabellen och varje månad bör vara en egen rad i en annan tabell.

tblMonth
monthName / monthNumber
januari / 1
februari / 2

tblDay
dayName / dayNumber
Måndag / 1
Tisdag / 2

Sedan en relationstabell som knyter samman lämpliga uppgifter på ett bra sätt.

Medlem sedan feb. 2001151 inlägg
#6

Fukar säkert men att börja om...
vill ju bara ha in värdet som jag räknar fram här

<%
Dim startdag, rutvarde1
startdag =1
rutvarde1 = 3 - startdag
%>
Jag får då fram att rutvarde1 är 2
och vill hämta innehållet i kolumnen som heter "2"

<%= Rs("rutvarde1")%>

men det funkar inte då det troligen är för att man inte kan ha räknevärden som namn

<%= Rs("2")%> funkar ju, men då är siffran ett namn

Medlem sedan juni 200032 967 inlägg
#7

Även om det bär mig emot, så...

<%= Rs(cstr(rutvarde1))%>
Medlem sedan mars 20032 667 inlägg
#8

Bjarne A skrev:

Fukar säkert men att börja om...

Förr eller senare får du bygga om. Rätt som det är har du byggt in dig i ett hörn. Frågan är vilket som är enklast, börja om nu eller senare. ;)

Medlem sedan feb. 2001151 inlägg
#9

Tack!

252 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
120 ms — deklarationer (db)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)