|
| ASP og Access - Problem med tegnet ' Fra : Rune Brynestad |
Dato : 01-08-01 07:39 |
|
Jeg har laget et ASP script som legger data fra et skjema inn i en Access
database. Alle felt i tabellen er tekst- eller notatfelt. Problemet er at
sluttbrukeren av og til kan finne på å legge inn tegnet ' i et av
skjemafeltene, og det skaper problemer. Er det mulig på en eller annen måte
å formatere feltet til å godta ' tegnet også? (Vanlig anførselstegn "
skaper ikke problem).
Koden:
<%
Option Explicit
Dim Conn
Dim SQLQuery
Dim Avdeling
Dim Saksbehandlar
Dim Namn
Dim Kundegruppe
Dim Laanebelop
Dim Tilbod_fra_oss
Dim Laanesituasjon
Dim Ny_bank
Dim Rente_ny_bank
Dim Kommentar
Avdeling = Request("Avdeling")
Saksbehandlar = Request("Saksbehandlar")
Namn = Request("Namn")
Kundegruppe = Request("Kundegruppe")
Laanebelop = Request("Laanebelop")
Tilbod_fra_oss = Request("Tilbod_fra_oss")
Laanesituasjon = Request("Laanesituasjon")
Ny_bank = Request("Ny_bank")
Rente_ny_bank = Request("Rente_ny_bank")
Kommentar = Request("Kommentar")
SQLQuery = "INSERT INTO Laan (Avdeling, Saksbehandlar, Namn, Kundegruppe,
Laanebelop, Tilbod_fra_oss, Laanesituasjon, Ny_bank, Rente_ny_bank,
Kommentar) VALUES ("
SQLQuery = SQLQuery & "'" & Avdeling & "',"
SQLQuery = SQLQuery & "'" & Saksbehandlar & "',"
SQLQuery = SQLQuery & "'" & Namn & "',"
SQLQuery = SQLQuery & "'" & Kundegruppe & "',"
SQLQuery = SQLQuery & "'" & Laanebelop & "',"
SQLQuery = SQLQuery & "'" & Tilbod_fra_oss & "',"
SQLQuery = SQLQuery & "'" & Laanesituasjon & "',"
SQLQuery = SQLQuery & "'" & Ny_bank & "',"
SQLQuery = SQLQuery & "'" & Rente_ny_bank & "',"
SQLQuery = SQLQuery & "'" & Kommentar & "')"
Set Conn = Server.CreateObject ("ADODB.Connection")
Conn.Open "DSN=Rapportering"
Conn.Execute(SQLQuery)
%>
Data som sluttbrukeren taster inn:
Tap av lånekundar PM
Det er viktig å få tilbakemelding når vi taper lånekundar, slik at vi
fortløpande kan vurdere eventuelle mottiltak.
Dette skjemaet skal nyttast når eksisterande kundar i Sparebanken Sogn og
Fjordane, som har fått eit lånetilbod frå oss, vel å ta opp eit lån i ein
annan bank.
Avdelingsbank Velg avdelingskontor Askvoll Balestrand Florø Førde
Gaular Gloppen Gulen Hornindal Hyllestad Høyanger Jølster Leikanger Måløy
Naustdal Sogndal Solund Stryn FA
Saksbehandlar
Namn på kunde
Kundegruppe ---Velg kundegruppe-- 18-25 26-34 35 og over
Lånebeløp
Tilbod frå oss (nominell/effektiv rente) (Det er ' tegnet i dette
feltet som skaper problemer)
Lånesituasjon ---Velg lånesituasjon-- Nytt lån Refinansiering
Ny bank
Rente i ny bank (dersom dette er kjent)
Kommentar (kva var avgjerande for kunden sitt val ?)
Pris
Feilmeldingen:
HTTP 500.100 - Internal Server Error - ASP error
Internet Information Services
----------------------------------------------------------------------------
----
Technical Information (for support personnel)
a.. Error Type:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator)
in query expression ''8,15 til 1.560' 9'.
/marknad/Rapportering/tap_av_laanekundar2.asp, line 46
| |
Asbjørn Ulsberg (01-08-2001)
| Kommentar Fra : Asbjørn Ulsberg |
Dato : 01-08-01 07:52 |
|
"Rune Brynestad" <rune.brynestad@fylkesbanken.sf.no> skrev:
> Problemet er at sluttbrukeren av og til kan finne på å legge
> inn tegnet ' i et av skjemafeltene, og det skaper problemer.
Dette er et kjent og vanlig problem og må løses med funksjonen
Replace().
> Avdeling = Request("Avdeling")
Her gjør du ikke forskjell på Request.QueryString() og
Request.Form(), noe som i visse tilfeller ikke er så
veldig lurt. Putt inn Replace() i setningen (og alle de
andre) så vil den fungere mye bedre;
Avdeling = Replace(Request.Form("Avdeling"), Chr(39), Chr(96))
Jeg bruker Chr(39) i stedet for "'" og Chr(96) i stedet
for "`", da jeg liker det best. Hva du gjør og hva du
velger å bytte ut "'" (Chr(96)) med er ditt eget valg.
Jeg synes ` er en god erstatning.. Alternativt kan du
fjerne alle fnutter (') ved å erstatte dem med ingenting;
Replace(..., Chr(39), "").
--
Mvh
Asbjørn Ulsberg
asbjorn@tigerstaden.no
"He is a loathsome offensive brute, yet I can't look away."
| |
Tez (01-08-2001)
| Kommentar Fra : Tez |
Dato : 01-08-01 08:29 |
|
> Dette er et kjent og vanlig problem og må løses med funksjonen
> Replace().
Når ein er først inne på emnet...
For å legge inn ei kontroll-rutine på at ein string inneholder berre tall,
eller berre bokstaver, kva måter kan ein løyse det på?
Mvh,
Terje Sørbø
| |
Rune Brynestad (02-08-2001)
| Kommentar Fra : Rune Brynestad |
Dato : 02-08-01 07:57 |
|
Glimrende løsningsforslag. Tusen takk for hjelpen.
Mvh
Rune Brynestad
Sparebanken Sogn og Fjordane
"Asbjørn Ulsberg" <asbjorn@tigerstaden.no> skrev i melding
news:9k88uc$ei8$1@oslo-nntp.eunet.no...
> "Rune Brynestad" <rune.brynestad@fylkesbanken.sf.no> skrev:
> > Problemet er at sluttbrukeren av og til kan finne på å legge
> > inn tegnet ' i et av skjemafeltene, og det skaper problemer.
>
> Dette er et kjent og vanlig problem og må løses med funksjonen
> Replace().
>
> > Avdeling = Request("Avdeling")
>
> Her gjør du ikke forskjell på Request.QueryString() og
> Request.Form(), noe som i visse tilfeller ikke er så
> veldig lurt. Putt inn Replace() i setningen (og alle de
> andre) så vil den fungere mye bedre;
>
> Avdeling = Replace(Request.Form("Avdeling"), Chr(39), Chr(96))
>
> Jeg bruker Chr(39) i stedet for "'" og Chr(96) i stedet
> for "`", da jeg liker det best. Hva du gjør og hva du
> velger å bytte ut "'" (Chr(96)) med er ditt eget valg.
> Jeg synes ` er en god erstatning.. Alternativt kan du
> fjerne alle fnutter (') ved å erstatte dem med ingenting;
> Replace(..., Chr(39), "").
>
> --
> Mvh
> Asbjørn Ulsberg
> asbjorn@tigerstaden.no
> "He is a loathsome offensive brute, yet I can't look away."
>
>
| |
Tez (01-08-2001)
| Kommentar Fra : Tez |
Dato : 01-08-01 08:04 |
|
"Rune Brynestad" <rune.brynestad@fylkesbanken.sf.no> skrev i melding
news:guN97.5344$em.181423@juliett.dax.net...
> Jeg har laget et ASP script som legger data fra et skjema inn i en Access
> database. Alle felt i tabellen er tekst- eller notatfelt. Problemet er
at
> sluttbrukeren av og til kan finne på å legge inn tegnet ' i et av
> skjemafeltene, og det skaper problemer. Er det mulig på en eller annen
måte
> å formatere feltet til å godta ' tegnet også? (Vanlig anførselstegn "
> skaper ikke problem).
Det ein kan gjere er å gå gjennom stringen, teikn for teikn. Ein måte å
gjere det på er å lage ein funksjon som behandler den aktuelle stringen:
uformatert = "Per's og Freddy's"
formatert = FiksTeikn(uformatert)
Function FiksTeikn(byval strString)
Dim intIndex
intIndex = Instr(strString, "'")
While intIndex > 0
strString = Mid(strString,1,intIndex) & "'" &
Mid(strString,intIndex+1)
intIndex = InStr(intIndex+2, strString, "'")
Wend
FiksTeikn = strString
End function
Ein kan etter alt sannsyn gjere dette i eit javascript også, men det er jo
ei anna newsgruppe samt sak
Mvh,
Terje Sørbø
| |
R. Stormo (01-08-2001)
| Kommentar Fra : R. Stormo |
Dato : 01-08-01 20:15 |
|
"Rune Brynestad" <rune.brynestad@fylkesbanken.sf.no> wrote in message
news:guN97.5344$em.181423@juliett.dax.net...
> Jeg har laget et ASP script som legger data fra et skjema inn i en Access
> database. Alle felt i tabellen er tekst- eller notatfelt. Problemet er
at
> sluttbrukeren av og til kan finne på å legge inn tegnet ' i et av
> skjemafeltene, og det skaper problemer. Er det mulig på en eller annen
måte
> å formatere feltet til å godta ' tegnet også? (Vanlig anførselstegn "
> skaper ikke problem).
>
> Koden:
Mange fine løsninger men enkelt gjøres det
med Replace(variable,"'","''")
--------------------------^^ 2 fnutter
R. Stormo
| |
|
|