Avatar billede disko Nybegynder
03. marts 2002 - 00:24 Der er 30 kommentarer

Tilføje til access

Hej!
Er der nogen der kan gi mig en nem måde og tilføje en linie til en access database?
Avatar billede arriva Nybegynder
03. marts 2002 - 00:27 #1
<% Sql = "INSERT INTO news (Et-felt, Et-andet-felt) VALUES('Et-eller-andet','noget-andet')
Con.Execute Sql %>
Avatar billede disko Nybegynder
03. marts 2002 - 00:28 #2
Efter values hvis man nu fjerner de der ' så det ser sådan ud Values(strnoget, strnoget osv vil det så virke?
Avatar billede arriva Nybegynder
03. marts 2002 - 00:30 #3
ja, du bruger ' for at markere tekst, så hvis det er en variable skal de ikke være der...
Avatar billede disko Nybegynder
03. marts 2002 - 00:32 #4
Jeg har følgende kode der ikke virker kan du sige mig hvad der er galrt?

strSQL = "Insert into spil (navn, preview, review, p-r, billede) values(strnavn,strtekst,strtekst,strpr,strbillede)"
Conn.Execute(strSQL)
Avatar billede arriva Nybegynder
03. marts 2002 - 01:37 #5
burde virke... du har vel en conn?
Ellers... kan du ikke skrive fejlkoden herinde?
Avatar billede coltau Juniormester
03. marts 2002 - 09:21 #6
Din SQL-sætning virker kun hvis alle variabler indeholder noget. De må ikke være tomme.
Hvis eksempelvis strpr er blank vil der komme en fejl hvis ikke linien laves således:
strSQL = "Insert into spil (navn, preview, review, p-r, billede) values(strnavn,strtekst,strtekst,NULL,strbillede)"
Conn.Execute(strSQL)

NULL anvendes til at blanke felter i update/insert sætninger.
Avatar billede disko Nybegynder
03. marts 2002 - 10:17 #7
Sker der noget ved man ikke nævner alle kolonner?
Avatar billede disko Nybegynder
03. marts 2002 - 10:20 #8
Den kommer med følgende fejl:
Fejltype:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC Microsoft Access-driver] Der er en syntaksfejl i INSERT INTO-sætningen.
/scripts/add.asp, line 13

Og den brokker sig over denne kode:

<%
strnavn = request.form("navn")
strtekst = request.form("tekst")
strpr = request.form("p-r")
strbillede = request.form("billed")
strtekst2 = request.form("tekst")
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("pr.mdb")
Conn.Open DSN

strSQL = "Insert into spil (navn, preview, review, p-r, billede) VALUES(strnavn,strtekst,strtekst2,strpr,strbillede)"
Conn.Execute(strSQL)

Conn.Close
Set Conn = Nothing
%>
Data tilføjet
Avatar billede disko Nybegynder
03. marts 2002 - 10:22 #9
Og den form man kommer fra ser sådan ud:

<%
if session("login") = "Tmpj" Then
%>
<form method="post" action="add.asp">
Navn på indlæg:&nbsp;<input name="navn"><br>
<textarea rows="23" name="tekst" cols="69"></textarea><br>
<input size="1" name="p-r"> hvis det er et preview så skriv p eller review skal du skrive r<br>
Billed sti:&nbsp;<input name="billed"><br>
<input type="submit" value="skriv">
</form>
<%
else
response.redirect "admin.html"
end if
%>
Avatar billede disko Nybegynder
03. marts 2002 - 10:23 #10
Kan i se hvad der er galt?
Avatar billede disko Nybegynder
03. marts 2002 - 10:24 #11
Ville gerne sætte points op men har desvære ikke flere:)
Avatar billede fomse Nybegynder
03. marts 2002 - 10:28 #12
Er det ikke fordi du i din strbillede = request.form("billed")
kalde det "billed" og i din strSQL = "Insert into spil (navn, preview, review, p-r, billede) kalder det "billede"?
Avatar billede disko Nybegynder
03. marts 2002 - 10:30 #13
Nej kolonnen hedder billede
Avatar billede disko Nybegynder
03. marts 2002 - 10:31 #14
Og hvis du ser på den form man kommer fra hedder den billed:
Billed sti:&nbsp;<input name="billed"><br>
Avatar billede fomse Nybegynder
03. marts 2002 - 10:32 #15
Hmm kommer fejlen hvis man ikke indtaster noget i et felt? Eller kommer den generelt?
Avatar billede disko Nybegynder
03. marts 2002 - 10:33 #16
Jeg har indtastet noget i alle felter og så kommer den med den der syntaks fejl (jeg bruger iis 5.01 tror jeg)
Avatar billede disko Nybegynder
03. marts 2002 - 10:34 #17
Ja 5.1
Avatar billede disko Nybegynder
03. marts 2002 - 10:47 #18
Så fejlen må jo komme generelt
Avatar billede coltau Juniormester
03. marts 2002 - 10:50 #19
Det er ganske enkelt. Din SQL-sætning skal se således ud:
strSQL = "Insert into spil (navn, preview, review, [p-r], billede) VALUES(strnavn,strtekst,strtekst2,strpr,strbillede)"

[] omkring feltnavnet p-r. Hvem kan også finde på at bruge underlige tegn i feltnavne. ? Det skulle ikke undre mig at Access er den eneste database der tillader det.
Avatar billede disko Nybegynder
03. marts 2002 - 11:03 #20
Ja det ser ud til det løste ET problem men nu melder den denne fejl:

Fejltype:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E10)
[Microsoft][ODBC Microsoft Access-driver] Der er for få parametre. Der var ventet 5.
/scripts/add.asp, line 15
Avatar billede disko Nybegynder
03. marts 2002 - 11:13 #21
Det er Conn.execute(strSQL) den brokker sig over nu hvad pokker er der galt med den?
Avatar billede snuseren.dk Nybegynder
03. marts 2002 - 11:14 #22
Du gør bare sådan:

sql = Conn.Execute("INSERT INTO Dintabel (tabel1, tabel2, osv) VALUES ('value1', 'value2', 'osv')")

Eller hvis du skal indsætte noget fra en form:

value1 = Request.Form("value1")
value2 = Request.Form("value2")
osv = Request.Form("osv")
sql = Conn.Execute("INSERT INTO Dintabel (tabel1, tabel2, osv) VALUES ('" + value1 + "', '" + value2 + "', '" + osv + "')")

MVH
Snuseren.dk
Avatar billede disko Nybegynder
03. marts 2002 - 11:16 #23
Det er vel også det jeg har gjort er det ik?
Avatar billede disko Nybegynder
03. marts 2002 - 11:17 #24
Den siger der er for få parametre og der var ventet fem i execute sætningen
Avatar billede coltau Juniormester
03. marts 2002 - 11:21 #25
fejlen: Der er for få parametre. Der var ventet 5.

Kan tyde på at et af felterne er blanke. Det kan godt ske at du udfylder alle felter i formen - men du kan ikke være sikker på at felterne i SQL-sætningen indeholder noget alligevel. (Pga. syntax-fejl mv.)
Prøv at udskrive den - så får du svar:
Response.Write(sqrSQL)
Linien indsættes før Execute.
Avatar billede disko Nybegynder
03. marts 2002 - 11:38 #26
Så skriver den bare præcist det samme som jeg skrev i koden altså: (strnavn,strpreview osv..
Avatar billede disko Nybegynder
03. marts 2002 - 11:49 #27
Gør det noget man undlader en kolonne for der er faktisk også en der hedder id`?
Avatar billede arriva Nybegynder
03. marts 2002 - 12:38 #28
nej... for det er jo autonummereringen, så den kan du ikke give en value...
Avatar billede coltau Juniormester
03. marts 2002 - 13:30 #29
Du skriver selv:
( at hvis du udskriver SQL-sætningen på skærmen så viser den teksten fra koden altså: (strnavn,strpreview osv ...)

DET HÅBER JEG SANDELIG IKKE. Den skal skrive hele SQL-sætningen med indholdet at variablene:

Du kommer sku' ikke videre før du udskriver den og evt. viser den her:
Jeg er sikker på at en eller flere af variablene (strnavn,strtekst,strtekst2,strpr,strbillede) er tomme. Det siger fejlmeddelelsen. !
Avatar billede coltau Juniormester
03. marts 2002 - 13:33 #30
Du skal heller ikke være sikker på at du kan indsætte nye poster i en SQL-sætning når du anvender typen: textarea. Hva' nu hvis bruger indtaster nogle af disse tegn. (' ") så dur SQL-sætningen ikke.
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