Avatar billede ponyboye Nybegynder
11. august 2004 - 22:40 Der er 7 kommentarer og
1 løsning

Drop Down liste og indsæt i access databse

jeg vil gerne have 4 drop down lister der skal bestemme hvilken kategorier en opskrift skal tilføjes til.

men hvordan får jeg den til at vælge den valgte på listen og indsætte denne i database?

Jeg har lavet det sådanne at det er en tal id den skal sende til databsen, men et navn man vælger.
Avatar billede ponyboye Nybegynder
12. august 2004 - 00:01 #1
Jeh nu lavet en formular til at afsende data med, men der går et eller andet galt ved modtagelse af data.

Den kommer med denne fejl:

[Microsoft][ODBC Microsoft Access Driver]General error Unable to open registry key 'Temporary (volatile) Jet DSN for process 0xdfc Thread 0xae8 DBC 0x14a9024 Jet'.

Jeg ved at stien til databasen er rigtig hvad går der galt?


<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("opskrifdata.mdb")
Conn.Open DSN

strSQL = "Insert into opskrifter (navn) values('" & Request.Form("navn") & "')"
strSQL = "Insert into opskrifter (af) values('" & Request.Form("af") & "')"
strSQL = "Insert into opskrifter (in1) values('" & Request.Form("in1") & "')"
strSQL = "Insert into opskrifter (fremgang) values('" & Request.Form("fremgang") & "')"
strSQL = "Insert into opskrifter (tilbe) values('" & Request.Form("tilbe") & "')"
strSQL = "Insert into opskrifter (tid) values('" & Request.Form("tid") & "')"
strSQL = "Insert into opskrifter (personer) values('" & Request.Form("personer") & "')"
strSQL = "Insert into opskrifter (hojtid) values('" & Request.Form("hojtid") & "')"
strSQL = "Insert into opskrifter (emme) values('" & Request.Form("emme") & "')"
strSQL = "Insert into opskrifter (kategori) values('" & Request.Form("kategori") & "')"
strSQL = "Insert into opskrifter (vare) values('" & Request.Form("vare") & "')"
strSQL = "INSERT INTO opskrifter (godkend) values (" & valgtNyhedsbrev & ")"
if Request.Form("godkend") = "true" then
  godkend = "true"
else
  godkend="false"
end if
Conn.Execute(strSQL)
CloseDatabase
%>
Avatar billede ponyboye Nybegynder
12. august 2004 - 00:03 #2
strSQL = "INSERT INTO opskrifter (godkend) values (" & valgtNyhedsbrev & ")"

den er lavet om til:


strSQL = "INSERT INTO opskrifter (godkend) values (" & godkend & ")"
Avatar billede eagleeye Praktikant
12. august 2004 - 00:44 #3
Angående den fejl du får. Den typisk årsag er at stien er forkert, hvis stien er rigtig er den næste mulighed filnavnet er forkert. Er du 100% sikkre på filen hedder: opskrifdata.mdb
Altså opskrift uden t? det skulle ikke være: opskriftdata.mdb


En anden ting måde du har skrevet koden på bliver variablen strSQl hele tiden overskriveret, og selvom du ikke overskrev er det ikke en korrekt måde at skrive SQL sætningen på med mindre du vil havde 13 nye poster for en ny opskrift :)

Syntaxen for en insert into er:
INSERT INTO tabelnavn (kol1,kol2,kol3,kol4,...,kolN) values ('data1','data2','data3',4,...,'dataN')


Her skal du også havde byttet rundt på if sætning og strSQL linje eller sættes variablen godkend først efter du har brugt den.
strSQL = "INSERT INTO opskrifter (godkend) values (" & valgtNyhedsbrev & ")"
if Request.Form("godkend") = "true" then
  godkend = "true"
else
  godkend="false"
end if


Så din strSQL skal bygges op på denne måde:


strSQL = "insert into opskrifter (navn, af, in1, fremgang, tilbe, tid, personer, hojtid, emme, kategori, vare, godkend)"
strSQL = strSQL & " values ("
strSQL = strSQL & "'" & Request.Form("navn") & "', "
strSQL = strSQL & "'" & Request.Form("af") & "', "
strSQL = strSQL & "'" & Request.Form("in1") & "', "
strSQL = strSQL & "'" & Request.Form("fremgang") & "', "
strSQL = strSQL & "'" & Request.Form("tilbe") & "', "
strSQL = strSQL & "'" & Request.Form("tid") & "', "
strSQL = strSQL & "'" & Request.Form("personer") & "', "
strSQL = strSQL & "'" & Request.Form("hojtid") & "', "
strSQL = strSQL & "'" & Request.Form("emme") & "', "
strSQL = strSQL & "'" & Request.Form("kategori") & "', "
strSQL = strSQL & "'" & Request.Form("vare") & "', "
if Request.Form("godkend") = "true" then
  godkend = "true"
else
  godkend="false"
end if
strSQL = strSQL & "" & godkend & ""
strSQL = strSQL & ")"
Conn.Execute(strSQL)


Har du nogle kolonner som er tal kolonner eller andet end tekst/notat skal der ikke ping omkring. Hvis personer var en tal kolonne skulle linjen være sådan her:
strSQL = strSQL & "" & Request.Form("personer") & ", "
Avatar billede ponyboye Nybegynder
12. august 2004 - 03:22 #4
jeg har nu indsat dette:

strSQL = "insert into opskrifter (navn, af, in1, fremgang, tilbe, tid, personer, hojtid, emme, kategori, vare, godkendt)"
strSQL = strSQL & " values ("
strSQL = strSQL & "'" & Request.Form("navn") & "', "
strSQL = strSQL & "'" & Request.Form("af") & "', "
strSQL = strSQL & "'" & Request.Form("in1") & "', "
strSQL = strSQL & "'" & Request.Form("fremgang") & "', "
strSQL = strSQL & "'" & Request.Form("tilbe") & "', "
strSQL = strSQL & "" & Request.Form("tid") & ", "
strSQL = strSQL & "" & Request.Form("personer") & ", "
strSQL = strSQL & "'" & Request.Form("hojtid") & "', "
strSQL = strSQL & "'" & Request.Form("emme") & "', "
strSQL = strSQL & "'" & Request.Form("kategori") & "', "
strSQL = strSQL & "'" & Request.Form("vare") & "', "
if Request.Form("godkendt") = "true" then
  godkend = "true"
else
  godkend="false"
end if
strSQL = strSQL & "" & godkendt & ""
strSQL = strSQL & ")"
Conn.Execute(strSQL)

og så får jeg denne fejl:

Syntax error in INSERT INTO statement

og det er her den siger fejlen er: Conn.Execute(strSQL)

I min database her jeg:

Id = Autonummerering
navn = Tekst
vare = Tekst
emme = Tekst
kategori = Tekst
hojtid = Tekst
fremgang = Notat
tid = Tal
personer = Tal
af = Tekst
tilbe = Tekst
godkendt = ja/nej
in1 = Notat

min form ser sådanne ud:

<form action="indsat.asp" method="post">
                                  <center>
                                   
    <div align="center">
      <table width="550" cellpadding="2" cellspacing="3" bgcolor="#CCCCCC" class="formadmin">
        <tr>
          <td width="250"><div align="center">Opskrift navn:<br>
              <input name="navn" type="text" id="navn">
            </div></td>
          <td width="250"><div align="center">Skrivet af:<br>
              <input name="af" type="text" id="af">
            </div></td>
        </tr>
        <tr>
          <td width="250"><div align="center">Ingedienser:<br>
              <textarea name="in1" id="in1"></textarea>
            </div></td>
          <td width="250"><div align="center">Fremgansm&aring;de:<br>
              <textarea name="fremgang" id="fremgang"></textarea>
            </div></td>
        </tr>
        <tr>
          <td><div align="center"> </div></td>
          <td><div align="center">Tilbeh&oslash;r:<br>
              <textarea name="tilbe" id="tilbe"></textarea>
            </div></td>
        </tr>
        <tr>
          <td width="250"><div align="center">Tilberedings tid:<br>
              <input name="tid" type="text" id="tid" size="10" maxlength="10">
            </div></td>
          <td width="250"><div align="center">Antal personer:<br>
              <input name="personer" type="text" id="personer" size="10" maxlength="10">
            </div></td>
        </tr>
        <tr>
          <td width="250"><div align="center"></div></td>
          <td width="250"><div align="center"></div></td>
        </tr>
        <tr>
          <td colspan="2"><div align="center"></div>
            <div align="center">Tilf&oslash;j til kategorier</div></td>
        </tr>
        <tr>
          <td height="22" colspan="2"><div align="center">
              <select name="hojtid" id="hojtid">
                <option value="0">V&aelig;lge H&oslash;jtid</option>
                <option value="1">Jul</option>
                <option value="2">P&aring;ske</option>
                <option value="3">Fastelavn</option>
                <option value="4">Nyt&aring;r</option>
                <option value="5">Helligtrekonger</option>
                <option value="6">Valentinsdag</option>
                <option value="7">Mors &amp; Fars dag</option>
                <option value="8">Sankt Hans</option>
                <option value="9">Halloween</option>
              </select>
              &nbsp;&nbsp;
              <select name="emme" id="emme">
                <option value="0">V&aelig;lge Emme</option>
                <option value="1">Afrikansk</option>
                <option value="2">Amerikansk</option>
                <option value="3">Asiatisk</option>
                <option value="4">Australsk</option>
                <option value="5">Belgisk</option>
                <option value="6">Bulgarsk</option>
                <option value="7">Engelsk</option>
                <option value="8">Fransk</option>
                <option value="9">Gr&aelig;sk</option>
                <option value="10">Hollandsk</option>
                <option value="11">Irsk</option>
                <option value="12">Italiensk</option>
                <option value="13">Jugoslavisk</option>
                <option value="14">Polsk</option>
                <option value="15">Portugisisk</option>
                <option value="16">Russisk</option>
                <option value="17">Schweizisk</option>
                <option value="18">Spansk</option>
                <option value="19">Tjekkisk</option>
                <option value="20">Tysk</option>
                <option value="21">Ungarsk</option>
                <option value="22">Arabisk</option>
                <option value="23">Iransk</option>
                <option value="24">Tyrkisk</option>
                <option value="25">Finsk</option>
                <option value="26">F&aelig;r&oslash;sk</option>
                <option value="27">Gr&oslash;nlandsk</option>
                <option value="28">Islandsk</option>
                <option value="29">Norsk</option>
                <option value="30">Svensk</option>
              </select>
              &nbsp;&nbsp;
              <select name="kategori" id="kategori">
                <option value="0">V&aelig;lge M&aring;ltid</option>
                <option value="1">Forret</option>
                <option value="2">Hovedret</option>
                <option value="3">Dessert</option>
                <option value="4">Morgenmad</option>
                <option value="5">Frokost</option>
                <option value="6">Natmad</option>
                <option value="7">Tilbeh&oslash;r</option>
                <option value="8">Andet</option>
              </select>
              &nbsp;&nbsp;
              <select name="vare" id="vare">
                <option value="0">V&aelig;lge kategori</option>
                <option value="1">Suppe Garniturer</option>
                <option value="2">Klare Supper</option>
                <option value="3">Kolde Supper</option>
                <option value="4">Brune Supper</option>
                <option value="5">Pur&eacute; Supper</option>
                <option value="6">Velout&eacute; Supper</option>
                <option value="7">Cr&eacute;me Supper</option>
                <option value="8">Danske Supper</option>
                <option value="9">Udenlanske Supper</option>
                <option value="10">Grund Saucer</option>
                <option value="11">Brune Saucer</option>
                <option value="12">Velout&eacute; Saucer</option>
                <option value="13">Fiske Saucer</option>
                <option value="14">Specielle Saucer</option>
                <option value="15">Kolde Saucer</option>
                <option value="16">Kolde Sm&oslash;r Saucer</option>
                <option value="17">&AElig;gge Retter</option>
                <option value="18">Fars Retter</option>
                <option value="19">Fiske Garniturer</option>
                <option value="20">Oksek&oslash;d&acute;s Retter</option>
                <option value="21">kalvek&oslash;d&acute;s Retter</option>
                <option value="22">Lamme &amp; F&aring;re Retter</option>
                <option value="23">Svinek&oslash;d&acute;s Retter</option>
                <option value="24">Fjerkr&aelig; Retter</option>
                <option value="25">Vildt Retter</option>
                <option value="26">Gr&oslash;nt Retter</option>
                <option value="27">Ris &amp; Mel retter</option>
                <option value="28">Varme Desserter</option>
                <option value="29">Kolde Desserter</option>
                <option value="30">Br&oslash;d &amp; Bagev&aelig;rk</option>
                <option value="31">Kager</option>
                <option value="32">Syltning</option>
              </select>
            </div>
            <div align="center"></div></td>
        </tr>
        <tr>
          <td height="22" colspan="2"><div align="center">Godkend opskrift? &nbsp;&nbsp;
              Ja
              <input name="godkendt" type="radio" value="true" checked>

              &nbsp;&nbsp; Nej
              <input type="radio" name="godkendt" value="false">

            </div></td>
        </tr>
        <tr>
          <td height="21" colspan="2">&nbsp;</td>
        </tr>
        <tr>
          <td height="16" colspan="2"><div align="center"><font face="Verdana, Arial, Helvetica, sans-serif"><b>
              <input type="Submit" value="Tilf&oslash;j" name="Submit">
              <input type="Reset" value="Slet" name="Reset">
              </b></font></div>
            <div align="center"></div></td>
        </tr>
        <tr>
          <td width="250"><div align="center"></div></td>
          <td width="250"><div align="center"></div></td>
        </tr>
      </table>
      </div>
  </center>
</form>
Avatar billede ponyboye Nybegynder
12. august 2004 - 07:25 #5
jeg har prøvet at se efter indlæg med Syntax error in INSERT INTO statement
og fandt en masse men ikke rigtig noget jeg kunne bruge til noget
Avatar billede eagleeye Praktikant
12. august 2004 - 10:31 #6
Her er en fejl, det ene sted såt godkend det andet godkendt:

if Request.Form("godkendt") = "true" then
  godkend = "true"
else
  godkend="false"
end if
strSQL = strSQL & "" & godkendt & ""


Det skal være:

if Request.Form("godkendt") = "true" then
  godkendt = "true"
else
  godkendt="false"
end if
strSQL = strSQL & "" & godkendt & ""
Avatar billede ponyboye Nybegynder
12. august 2004 - 17:00 #7
he he nu virker det.

Jeg indsatte det du skrev og så lavet jeg feltet i database "godkendt = ja/nej" om til Tekst.

ved ikke lige om det var det der gjore det, men nu indsætter den da data.

Er der ikke en god side på nettet med beskrivelser om sådanne noget for det er første gang jeg prøver at lave sådanne funktioner?

Læg et lille svar for den dejlige hjælp.
Avatar billede eagleeye Praktikant
12. august 2004 - 18:50 #8
Ok:)

Der er www.html.dk som har en ASP Tutorial, disse afsnit omkring database:
http://www.html.dk/tutorials/asp/lektion17.asp
http://www.html.dk/tutorials/asp/lektion18.asp
http://www.html.dk/tutorials/asp/lektion19.asp
http://www.html.dk/tutorials/asp/lektion20.asp
http://www.html.dk/tutorials/asp/lektion21.asp


Jeg bruger selv denne til opslag når jeg ikke lige helt kan huske SQL syntaxen, eller ASP funktion, jeg synte den er godt som opslags side, den er ikke vildt advanceret men dækker afligevel en hel del.:
http://www.w3schools.com

Den er lidt mere general omkring SQL og ikke ASP og SQL blandet sammen.
SQL : http://www.w3schools.com/sql/default.asp
ASP : http://www.w3schools.com/asp/default.asp


Jeg kan også godt lide denne side, de har nogle gode artikler:
http://www.4guysfromrolla.com/
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester