Jag har en sida där jag presenterar styrelsen i en medlemsförening. Alla uppgifter om användarna kommer från en och samma databas men från två olika tabeller. Och så gör vi ett måndagslyft. Är det verkligen ingen som kan hjälpa mig? Jag fattar inte - kanske är trött, men det känns som jag fick för mycket information på en gång. Jag tror mig lyckats lista ut vad du försöker ha hjälp med. Du saknar wtt where vilkor vid uppdatering. Med andra or en läng mellan den post du redigerar och sparningen av det nya värdena. OK. Jag ska strukturera om min fråga lite. Ser att det verkar lite rörigt. För min del känns det som du haft "fel" tänk när du gjorde det. 1. Jag är mycket väl medveten om att de kallas ledamöter när de är med i styrelsen, men jag förstår inte vart du vill komma med det påpekandet, det är väl inte relevant för lösningen? Kan du skriva tabellstrukturen på tabellerna som innehåller medlemmar(RT_Familys,) och styrelse för ökad förståelse (för mig)?! Vad som känns som utmaniungen för dig är Den naturliga nyckeln UNamn. ÄR det när man redigerar denna somm du får problem? Nja, den nyckeln redigeras aldrig, men för att jag ska kunna visa styrelseledamöterna rätt måste jag, förutom att uppdatera tabellen Styrelsen med namn och funktion, även uppdatera den med det UName från tabellen RT_Familys som hör i hop med det namn jag har valt till en styrelsepost. Jag löste problemet genom att helt enkelt införa en post till i tabellen RT_Familys där jag skriver vilken funktion man ev. har i styrelsen. För att presentera resultatet ställer jag ett villkor att endast de poster som innehåller uppgift om en styrelsepost ska visas på sidan. På detta vis blev det betydligt mindre kod att hålla reda på, samt att det är mycket lätt att administrera det hela. Jag trodde jag var helt klar, så stötte jag på ett liiitet problem som säkert är jättelätt att ordna till om man får hjälp att tänka :o) Med både mamma och pappa i styrelsen, menar du då att två medlemmar från samma lägenhet är med i styrelsen? Får man ha det så? Jag har för mig att detta inte är tillåtet; men kan ha fel. Det borde lösa sig om du lägger den sista ElseIf-satsen först. Som det är nu så blir en av de två första if-satserna alltid uppfyllda, såvida MBoard och FBoard har något värde, har de inget värde så blir ingen av de tre satserna uppfyllda. Det fungerade alldeles utmärkt med att flytta den sista ElseIf-satsen överst. Stort tack för hjälpen!Uppdatera en tabell med värden från en annan tabell
Namn på en styrelseledamot och dess funktion kommer från tabellen Styrelsen. Uppgifterna om medlemmarna kommer från tabellen RT_Familys. För att skilja användarna åt har alla ett användarnamn som är unikt för varje användare. Den tabellposten heter UName och finns i bägge tabeller.
Koden för sidan där styrelsen presenteras ser nu ut så här:
<%
'Nedstående kod sköter själva uppdateringen av tabellen Styrelsen.
SQL = "SELECT * From Styrelsen"
rs.Open SQL, Connection, adOpenStatic, adLockOptimistic
%>
<%
If Request.Form("Update") <> "" Then
RS("namn") = Request.Form("namn")
RS("funktion") = Request.Form("funktion")
RS("UName") = Request.Form("UName")
RS.update
End If
%>
<%'Nedstående avgör om sidan ska redigeras eller inte%>
<%If Request.QueryString("Edit") = "true" Then %>
<form method="POST" action="styrelsen.asp">
<input type="hidden" name="Update" value="<%=Request.QueryString("Edit")%>">
Ändra medlemmar i Rosa Tornets styrelse:<p>
Välj en funktion i listan:<br>
<SELECT NAME="funktion">
<OPTION></OPTION>
<%
'Eftersom jag ännu har en connection öppen mot tabellen Styrelsen loopar jag igenom dess poster så att man kan välja ut en av de aktuella posterna
Do while NOT rs.eof
%>
<OPTION><%=rs("funktion")%></OPTION>
<%
rs.MoveNext
Loop
rs.close
%>
</SELECT>
<p>
Välj ett namn i listan:<br>
<SELECT NAME="namn">
<OPTION></OPTION>
<%'Här öppnar jag en ny connection mot den tabell som innehåller alla uppgifter om medlemamrna, bla. användarnamn och fullt namn. Både mammor och pappor kan vara med, därav två olika options, och loopar igenom den.
SQL = "SELECT Mother, Father, UName From RT_Familys"
rs.Open SQL, Connection, adOpenStatic, adLockOptimistic
%>
<%
Do while NOT rs.eof
%>
<OPTION><%=rs("Mother")%></OPTION>
<OPTION><%=rs("Father")%></OPTION>
<%
rs.MoveNext
Loop
%>
</SELECT>
<p>
<font face="Arial" size="2"></font>
<input type="submit" value="Uppdatera">
<%
Else
rs.close
'Om sidan inte ska uppdateras eller redigeras presenteras dess styrelse enligt nedan. Jag kopplar medlemmarna i styrelsen mha. användarnamnet, annars skulle alla användare loopas igenom.
SQL = "SELECT * From Styrelsen, RT_Familys Where Styrelsen.UName = RT_Familys.UName"
rs.Open SQL, Connection, adOpenStatic, adLockOptimistic
%>
Rosa Tornets styrelse:<p>
<%
Do while NOT rs.eof
%>
<%
If rs("namn") = rs("Mother") Then
%>
<%=rs("funktion")%>:<br>"><%=rs("namn")%><br>Telefon hem: <%=rs("PHome")%><br>Telefon arbete: <%=rs("MPWork")%><br>Mobil: <%=rs("MPMob")%><p>
<%
ElseIf rs("namn") = rs("Father") Then
%>
<%=rs("funktion")%>:<br>"><%=rs("namn")%><br>Telefon hem: <%=rs("PHome")%><br>Telefon arbete: <%=rs("FPWork")%><br>Mobil: <%=rs("FPMob")%><p>
<%End If%>
<%
rs.MoveNext
Loop
%>
<%'Nedstående rad talar bara om vem som ska få redigera sidan%>
<%If Session("access") = "SA" OR Session("access") = "Admin" Then%>
<font face="Arial" size="2">Redigera sidan</font>
<%End If%>
<%End If%>
<%
rs.close
Connection.Close
Set rs = Nothing
Set Connection = Nothing
%>
Som jag har berättat tidigare så använder jag UName för att skilja medlemmarna åt, det är unikt för varje användare. Således använder jag den i min tabell Styrelsen för att inte alla medlemmar ska listas när jag visar styrelsen.
Har nu kommit så långt på min uppdateringssida att alla uppgifter uppdateras när jag skickar iväg sidan efter redigering UTOM just UName, vilket får till följd att den post jag redigerat inte presenteras på sidan eftersom just UName inte skrivs in i tabellen Styrelsen. Hur löser jag detta månne?
Jag måste komma på ett sätt att koppla UName till den mamma eller pappa jag väljer när jag listar medlemmarna när tabellen Styrelsen ska redigeras/uppdateras.
Jag har försökt att loopa igenom UName efter att jag loopar mammor och pappor men får inte till det.
Är det någon som ser vart jag har otur när jag tänker?
Mvh/MankanSv:Uppdatera en tabell med värden från en annan tabell
Sv: Uppdatera en tabell med värden från en annan tabell
Varför skall du kombinera tabellerna?
Styrelseledamöter och medlemmar är två separata ting.
Förklara så trötta jag förstår (kortfattat helst)Sv: Uppdatera en tabell med värden från en annan tabell
Sedan känns det som du vill kunna relatera medlemmar till varandra. Skapa en många till många relation mellan medlemmar.
Ditt misstag du gör i denna postningen är att tro att koden talar för dig. Detta tror jag till har lett att folk inte orkar läsa sig igenom ditt inlägg.
Presentera först din frågeställlning/problem. Förklara med ord hur det är strukturerat och hur tänkt att det skall fungera. Använd sisst kod för ytterligare visa hur du faktist har gjort det.
Sedan underlättar code-taggar läsningen.
Finns det något krav på säkerhet i systemet? För den kod du presenterar saknar säkerhet. Sv:Uppdatera en tabell med värden från en annan tabell
Jag har säkerhet på sidan som är inkluderat genom andra filer. Koden jag visar behandlar endast den del som hanterar listningen/redigeringen av styrelsemedlemmar.
Alltså, jag har en datbas där alla uppgifter om våra medlemmar finns i en tabell. Den tabellen heter RT_Familys.
I samma databas men i en annan tabell finns uppgift om vilka som är med i styrelsen, vilken funktion de har, samt vilket UName de har (primärnyckeln). Den tabellen heter Styrelsen. Förutom att visa det vill jag även visa vilket telefonnummer och email de har.
För att enkelt kunna redigera styrelsetabellen med vem som ingår i styrelsen, om adressuppgifter mm. ändras vill jag använda mig av både tabellen Styrelsen OCH tabellen RT_Familys för att inte behöva skriva in samma sak i flera olika tabeller om någonting ändras.
Som jag nämnde i början så finns alla uppgifter i tabellen RT_Familys som medlemmarna själva uppdaterar vid behov mha. ett webgränssnitt.
En stolpsammanfattning här ger att:
Jag vill visa vem som är med i styrelsen.
Jag vill presentera deras funktion OCH deras telefonnummer/email.
Kontaktinformationen (email mm) finns ENDAST i tabellen RT_Familys.
Det ska vara enkelt att redigera medlemmarna i styrelsen. Det ska räcka med att välja en funktion och koppla ett namn till densamma så ska uppgifterna ändras på sidan där styrelsen presenteras, UTAN att jag behöver fylla i information på flera olika ställen. ALL uppdatering av kontaktuppgifter sker i tabellen RT_Familys.
För att kunna koppla vilka kontaktuppgifter som hör till ett visst namn i tabellen Styrelsen har jag ställt ett villkor där primärnyckeln (UName) ska vara samma i BÅDE tabellen Styrelsen OCH tabellen RT_Familys. Om jag inte gör det så kommer alla kontaktuppgifter att loopas igenom.
Problemet jag har är att när jag ska uppdatera tabellen Styrelsen med ett namn/funktion FRÅN tabellen RT_Familys så har jag inte lyckats komma på hur jag ska få med primärnyckeln (UName) i uppdateringen. Det som händer är att namn och funktion uppdateras i tabellen Styrelen, men INTE primärnyckeln (UName). Detta får då till följd att det redigerade namnet/funktionen i tabellen Styrelen INTE visas eftersom primärnyckeln (UName) i tebellen Styrelen INTE stämmer överens med primärnyckeln (UName) i tabellen RT_Familys.
Jag vet inte om ni blir så mycket klokare av detta men det är vad jag försöker uppnå med min lilla sida.
Slutfrågan lyder då alltså:
Hur gör jag för att uppdatera primärnyckeln (UName) i tabellen Styrelen FRÅN tabellen RT_Familys när jag redigerar medlemmarna i styrelsen?
Observera att visningen av medlemmarna med deras resp. kontaktuppgifter fungerar klockrent så länge jag inte uppdaterar det via webgränssnittet. Skriver jag in det direkt i databasen fungerar det ju eftersom jag då får in allt på rätt ställe.
Mvh/MagnusSv: Uppdatera en tabell med värden från en annan tabell
Lite förslag och synpunkter
1. "Det ska vara enkelt att redigera medlemmarna i styrelsen."
- Visst att medlemmar i föreningen är med i styrelsen, men då kallas de väl ledamöter?
2. Databasmässigt hade jag gjort såhär: (reservation för ändrade tabellnamn och fältnamn, du fårstår nog vart jag menar)
Tabell: brf_Medlemmar
-Id
-Förnamn
-Efternamn
-lägenhetsnummer
-telefon (visas endast om med i styrelsen)
-epost (visas endast om med i styrelsen)
[eller]
-visa_epost (true/false)
-visa_telefon (true/false)
Tabell: brf_Styrelse
-Id
-medlemID
-roll (Ordförande /Sekreterare / Kassör / Ledamot / Suppleant antingen med ren text eller nummer som motsv roll: 1 = Ordf, 2= Sekr)
I admingränsnitet är det på så sätt ätt att ändra utan att krångla till det.
Sen på publika sidan filtrera ut med hjälp av SQL och INNER/LEFT JOIN
Har jag en poäng?
Vår BRF är inte så stor så vi behöver inte lika omfattande system för vår hemsida /intranätSv:Uppdatera en tabell med värden från en annan tabell
2. Jag kanske har otur när jag tänker nu, men jag ser inte din poäng. I min ena tabell, RT_Familys, har jag som sagt alla uppgifter om familjerna. Den visas upp i sin helhet på en annnan sida så att man kan få fram alla uppgifter om den man söker. Jag kan i den tabellen alltså inte välja att man bara visar epost och telefon om man är LEDAMOT av styrelsen. Då är det ju ingen annan som ser de uppgifterna om man inte är i styrelsen?
Som jag nämnde tidigare fungerar visningen av styrelsen idag alldeles utmärkt, det är endast uppdateringen av UName i den tabellen jag har problem med, och jag ser inte något konkret förslag i ditt tänk hur man löser det?
Ber om ursäkt om jag låter lite kort, det är inte alls meningen. Jag jobbade sent i natt och har bara fått ett par timmars sömn.
Fler förslag mottages tacksamt :o)
Mvh/MagnusSv: Uppdatera en tabell med värden från en annan tabell
Du har skrivit mycket om funktionaliteten så det behövs inte göras igen.
Du behöver kanske sova på saken för att förstå poängen med mitt perfekta förslag ;)Sv: Uppdatera en tabell med värden från en annan tabell
Skapa en räknare som primärnyckel.Sv:Uppdatera en tabell med värden från en annan tabell
Sv: Uppdatera en tabell med värden från en annan tabell
Tack till Jonas som fick mig på rätt spår, för jag antar att det var ungefär det här du menade?
Mvh/MagnusSv:Uppdatera en tabell med värden från en annan tabell
Villkoren är som sagt att antingen så sitter mamman i styrelsen och då visas hennes namn på sidan.
Eller också sitter pappan i styrelsen och vips så finns hans namn på sidan.
Dock så glömde jag bort det lilla faktum att det kan slumpa sig så att både mamman och pappan kan vara med i styrelsen, och då måste naturligtvis detta presenteras på sidan.
Det är där jag inte får till det. Koden för att visa styrelsen ser nu ut så här:
<%
SQL = "SELECT * From RT_Familys Order BY MBoard AND FBoard"
rs.Open SQL, Connection, adOpenStatic, adLockOptimistic
%>
<b>Rosa Tornets styrelse:</b><p>
<%
Do while NOT rs.eof
%>
<%
If rs("MBoard") <> "" Then
%>
<b><%=rs("MBoard")%>:</b><br>"><%=rs("Mother")%><br><b>Telefon hem:</b> <%=rs("PHome")%><br><b>Mobil:</b> <%=rs("MPMob")%><p>
<%
ElseIf rs("FBoard") <> "" Then
%>
<b><%=rs("FBoard")%>:</b><br>"><%=rs("Father")%><br><b>Telefon hem:</b> <%=rs("PHome")%><br><b>Mobil:</b> <%=rs("FPMob")%><p>
<%
ElseIf rs("MBoard") <> "" AND rs("FBoard") <> "" Then
%>
<b><%=rs("MBoard")%>:</b><br>"><%=rs("Mother")%><br><b>Telefon hem:</b> <%=rs("PHome")%><br><b>Mobil:</b> <%=rs("MPMob")%><p>
<b><%=rs("FBoard")%>:</b><br>"><%=rs("Father")%><br><b>Telefon hem:</b> <%=rs("PHome")%><br><b>Mobil:</b> <%=rs("FPMob")%><p>
<%
End If
rs.MoveNext
Loop
rs.close
Connection.Close
Set rs = Nothing
Set Connection = Nothing
%>
MBoard är den post i tabellen RT_Familys som talar om vilken styrelsepost som mamman innehar.
FBoard är motsvarande för pappan.
Jag tycker att det borde fungera med den sista elseif-satsen, men icke!
Jag ser i databasen att uppgifterna skrivs in som de ska, men om både mamman och pappan är med i styrelsen så presenteras endast mamman.
Snälla, hjälp mig att få mindre otur när jag tänker.
Mvh/MagnusSv: Uppdatera en tabell med värden från en annan tabell
Jag kanske har missförstått det med "mamma" och "pappa"?!
Kan det finnas två pappor? Blir en pappa isf en mamma? Blir snurrig :)
Edit: jag läste på lite och såg då att det inte hade med BRF att göra...
SorrySv: Uppdatera en tabell med värden från en annan tabell
Du kan ju också köra två if-satser, en för MBoard och en för FBoard, alltså ingen ElseIf.
/JSv:Uppdatera en tabell med värden från en annan tabell
Mvh/Magnus