23. januar 2004 - 11:03Der er
38 kommentarer og 1 løsning
Tilføge data til én tabel og verficere med en anden (Access)
Hvordan gør man :
Udfylde en formular med navn, adresse, postnr, fødselsdato... Sender det, og bliver tilføjet i en tabel (bruger) MEN! kun hvis fødselsdato (birth) findes i en anden tabel i samme db (birth)
Nej nej... tror det er mig der kvajer rundt i det...
Jeg vil oprette nye poster... Altså man udfylder skemaet, trykker send, scriptet ser om man eksisterer i "user" vha. birth og hvis man gør, så bliver de nye oplysninger tilføjet i db'en... der skal ikke rettes ... men tilføjes.
Du skal stadig lave to database tilgange. En SELECT og en INSERT.
Først laver du din
sql = "SELECT COUNT(*) FROM user WHERE BIRTH = '" & Request("birth") & "'"
og fyrer den af. Så henter du den første (og eneste) række ud, og checker værdien. Hvis den er større end nul, har du mindst 1 bruger med denne fødselsdag.
Nu lukker du dine objekter ned, og laver en NY databasetilgang, hvor du laver din INSERT del, men KUN hvis det første opslag gav en værdi over nul.
Du må evt. smaske din .asp kode ind her, og så kan jeg forsøge at rette den til. Jeg har bare lige nu mulighed for at checke det af om det virker.
Hov. Nu hvor jeg sidder og strikker noget sammen, ser jeg at du har flere felter der går igen i begge tabeller....? ØNSKER du virkelig redundante data, eller er det nok at lave en reference fra den ene tabel til den anden?
Dav du. Efter jeg skrev mit spørgsmål 30/01 10:42:48 har jeg ikke fået taget tid til at kigge nærmere på det.
Jeg smider et spørgsmål med en ref. til dette, og så ser vi om der er en anden der vil hjælpe og få pointene. Ellers vil jeg se om jeg får lidt fritid i aften.
Jeg antager at "det kan jeg da godt se" betyder at det vil være en idé at undgå de redundante data?
Jeg spørge lige.. 1. Du vil tjekke i tabellen user om en fødselsdag findes i kolonnen birth som bliver indtastet på en form ? 2. Hvis fødselsdage ikke findes, indsætte navn, bynavn, adress, fødselsdag i tabellen evet ? 3. Hvis fødselsdage findes i tabellen user skal der ikke ske noget ?
Altså tabellen 'user' skal ikke opdateres via. formularen... kun 'event', og den skal kun opdateres hvis ham/hende som indtaster er oprettet i tabellen 'user'.
Ok så misforstod jeg det først :) men her er et eksempel på din kode. Det skal bare puttes ind i en fil.
<% session.LCID=1030 %> <% if Request.ServerVariables("REQUEST_METHOD") = "POST" then Set MyConn = Server.CreateObject("ADODB.Connection") Myconn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("../db/dbase.mdb")
dato = Replace(Request.Form("birth"),"'","")
SQL = "select birth from [user] where birth = '" & dato & "'" Set rs = MyConn.Execute(SQL) if not rs.EOF then navn = Replace(Request.Form("navn"),"'","''") adr = Replace(Request.Form("adr"),"'","''") postnr = Replace(Request.Form("postnr"),"'","") by = Replace(Request.Form("by"),"'","''") kulb = Replace(Request.Form("klub"),"'","''") eventstr = Replace(Request.Form("Event"),"'","''")
Jeg har stadig et halvt øje med fra sidelinien. ;-)
Ville det ikke være en god idé at include hans eksisterende connect.asp istedet for at kode forbindelsen til databasen. På den måde vil det kun være nødvendigt at rette et enkelt sted, såfremt der en dag skal forbindes til en anden database, eller sågar en helt anden databasetype...?
Ikke for at være picky-picky... Jeg er glad for at en anden kunne afse tiden, hvor jeg desværre ikke kunne. :-)
Nu har jeg endelig fået det testet... min server var gået lidt kold ;)
Det virker ikek så'n rigtigt... Hvis jeg indtaster en ikke-eksisterende fødselsdato returnerer den til samme side... (reloader) men hvis datoen eksisterer kommer der en "Siden kan ikke vises" og jeg har slået "Vis uskadelige HT...." til... ??? Hvad er der galt ?
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.