Har gjort en nyhetsbrevsapplikation som idag använder sig av en tabell - tblmembers. selTbl= Request.Form("selTbl") (Kanske = tabell2) Varför? Låter som dålig databas design. Inte använda identiska tabeller. Får ett felmeddelande: Du skall inte ha några enkelfnuttar runt tabellnamnet. Vet att designen inte är den ultimata, men så har jag inte programmerat mer än några månader heller... <code> Ok, du menar alltså att jag skall ha alla medlemmar i tbl_member, som i sin tur ligger i relation med tbl_group via "groupID"? Hej igen putte. tycker din group tabell är mycket vacker. Men member tabellen är lite småt förskräckligt. Om du ger tabellen namnet memer. borde det då inte vara MemberId, MemberName, MemberPwd. Kanske lämpligare att kalla tabellen User iså fall. Desutom är jag emot att man använder sig av identiska fältnamn när man gör relationer. Jag föreslår istället fältnamnet MemberGroup eller UserGroup. Som sagt...jag är ingen klippa. Håller helt med dig i dina synpunkter..och jag tackar för berömmet :-). Använda en variabel för tabellnamnet i SELECT-satsen...
Nu är det så att jag kommer att behöva använda flera olika tabeller (dock identiska) såsom tblmembers2, tblmembers3 o.s.v.
På startsidan vill jag kunna välja vilken tabell jag vill använda, via exempelvis en drop-downmeny. När valet är gjort vill jag att alla SELECT-satser i applikationen ändras till vald tabell.
Ett exempel på en SELECT-sats:
Set objRS = Server.CreateObject("ADODB.Recordset")
strSQL = "SELECT EmailAddress " & _
"FROM tblmembers " & _
"WHERE EmailAddress = '" & strEmailAddress & "'"
objRS.Open strSQL, objConn
Jag vill alltså kunna ändra tabellnamnet beroende på valet i min drop-down. Går detta att göra med en variabel???Sv: Använda en variabel för tabellnamnet i SELECT-satsen...
"SELECT email FROM " & selTbl & " WHERE...."
//PutteSv: Använda en variabel för tabellnamnet i SELECT-satsen...
Sv: Använda en variabel för tabellnamnet i SELECT-satsen...
Microsoft JET Database Engine error '80040e14'
Syntax error in query. Incomplete query clause.
/news/MemberList.asp, line 26
Set objRS = Server.CreateObject("ADODB.Recordset")
strSQL = "SELECT * " & _
"FROM '" & strTable & "'" & _
"ORDER BY LastName"
Line 26: objRS.Open strSQL, objConn, adOpenStatic, adLockPessimisticSv: Använda en variabel för tabellnamnet i SELECT-satsen...
Testa detta:
strSQL = "SELECT * FROM " & strTable & " ORDER BY LastName"
Fast jag håller med Andreas angående databasdesingen. Du kanske skulle kolla över den innan du målar in dig i ett hörn.
//PutteSv: Använda en variabel för tabellnamnet i SELECT-satsen...
Funderade först på att slänga in allt i samma tabell och skapa grupper, men eftersom den skulle bli rätt tung, så valde jag istället att dela upp tabellerna. Hur skulle ni designa? Kom gärna med tips!Sv: Använda en variabel för tabellnamnet i SELECT-satsen...
Så här kanske kan vara en början.
Nu ser jag ju inte hela bilden och jag är långt ifrån någon databasdesign-expert.
Sedan väljer du i din dropdown meny namnet på den grupp som du vill använda i din select sats.
intGroup = Request.Form("selGroup")
"SELECT * FROM tbl_member WHERE groupID = " & intGroup & " ORDER BY LName"
Ex:
tbl_group
groupID
groupName
tbl_member
userID
groupID
userName
userPwd
userEmail
fName
LName
osv.
</code>
//PutteSv: Använda en variabel för tabellnamnet i SELECT-satsen...
Sv: Använda en variabel för tabellnamnet i SELECT-satsen...
Gillar inte förkortningar som FName eller LName. Är ju inte mycket mer tecken att skriva fullständigt namn.
Mitt ex:
tbl_Users
UserID
UserGroup
UserName
UserPwd
UserEmail
UserFirstName
UserLastName
osv.
Eller om member är mer lämpligt:
tbl_Member
MemberID
MemberGroup
MemberName
MemberPwd
MemberEmail
MemberFirstName
MemberLastName
Om det sedan är så att en medlem/användare skall kunna tillhöra en till flera grupper. Är ju en många till många relation mer lämplig:
Då gör man så att man skapar en mellan tabell. Inte hittat nån bra namngivning för den. men jag får väl vara konsekvent:
tbl_GroupMembers
(GroupMembersId)
GroupMembersGroup
GroupMembersMember
Man kan ju ha en räknare men det är egentligen onödigt eftersom GroupMembersGroup och GroupMembersMember är den naturliga nyckeln.
/Mvh, Andreas HillqvistSv: Använda en variabel för tabellnamnet i SELECT-satsen...
//Putte