webForumDet fria alternativet

nybörjarfråga om export/import av data i Access

6 svar · 199 visningar · startad av timedia

timediaMedlem sedan maj 2001420 inlägg
#1

Har en tabell där jag tyvärr för ca 170 filmer sedan gjorde ett dumt misstag (visste inte bättre) :(
Tabellen heter recensioner och där finns tyvärr all info om recenserade filmer samlade. Nu vill jag utveckla skådespelardelen med lite nya funktioner och då behöver jag göra en ny tabell för dom.

Problemet: I dag ligger skådespelarna kommaseparerade i ett PM-fält (Actors)ex.Christian Bale, Willem Dafoe, Jared Leto,
Finns det något enkelt sätt att exportera dessa till en annan tabell (Skadisar) där fnamn och efternamn blir liggande i var sin cell?

------------------
www.moviemix.nu

LarsGMedlem sedan dec. 200012 464 inlägg
#2

Hur ligger namnet? Är det alltid ett förnamn och ett efternamn eller
kan det förekomma

"Rhonda jo Petty,Madonna, John C Watson" ?

Jag skrev ihop en bit VB-script. Där tolkas det så att sista ordet i actors blir efternamn allt annat blir förnamn. Om det bara finns ett ord så
blir det efternamn.

Koden gör också en kontroll så att man inte lagrar duplikat. Det är ju helt otestat, men det kanske är något
du kan utgå ifrån i alla fall.

option explicit
dim sql,rs,actors,connect,firstName,lastName,rq,lastSpace,i

set connect = server.createobject("adodb.connection")
connect.open "dsn"
sql = "select actors from movies"
set rs = connect.execute(sql)
while not rs.eof
   actors = split(rs("actors"),",")
   for i = 0 to ubound(actors)
       lastSpace = instrRev(actors(i)," ")
       if lastSpace = 0 then
          lastName = actors(i)
          firstName = ""
       else
          lastName = mid(actors(i),lastSpace+1)
          firstName = trim(mid(actors(i),1,lastSpace))
       end if
'
' se om den finns innan
'
       set rq = conenct.execute("select 1 from actors where lastName = '" &_
	replace(lastName,"'","''") & "' and firstName = '" & _
        replace(firstName,"'","''") & "'")
       if rq.eof then
          connect.execute "insert into actors (lastName,firstName) values('" & _
          replace(lastName,"'","''") & "','"  & _
          replace(firstName,"'","''") & "')",,128
       end if
       rq.close
   next
   rs.movenext
wend
rs.close
connect.close

------------------
essentitia preter non sans multiplicandum

[Redigerat av LarsG den 20 nov 2001]

timediaMedlem sedan maj 2001420 inlägg
#3

Tackar :)
Lite fel dock:

Feltyp:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][Drivrutin för ODBC Microsoft Access] Syntaxfel (operator saknas) i frågeuttrycket 'Bale'.'Christian')'.
/moviemix/html/testact.asp, line 26

rad 26= connect.execute "insert into actors (lastName,firstName) values(" & _

------------------
www.moviemix.nu

LarsGMedlem sedan dec. 200012 464 inlägg
#4
if rq.eof then
connect.execute "insert into actors (lastName,firstName) values(" & _
replace(lastName,"'","''") & "','" & _
replace(firstName,"'","''") & "')",,128
end if

Ett skrivfel, jag har bytt från punkt till komma.

------------------
essentitia preter non sans multiplicandum

timediaMedlem sedan maj 2001420 inlägg
#5

samma fel igen

Feltyp:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][Drivrutin för ODBC Microsoft Access] Syntaxfel (operator saknas) i frågeuttrycket 'Bale','Christian')'.
/moviemix/html/testact.asp, line 26

Stirrar mig blind på koden och inser hur mycket man måste lära :l

------------------
www.moviemix.nu

LarsGMedlem sedan dec. 200012 464 inlägg
#6

En liten miss till

if rq.eof then
connect.execute "insert into actors (lastName,firstName) values('" & _
replace(lastName,"'","''") & "','" & _
replace(firstName,"'","''") & "')",,128
end if

lade till en apostrof precis efter values, det blir lätt så när man inte har någon direkt mäjlighet att testa.

------------------
essentitia preter non sans multiplicandum

timediaMedlem sedan maj 2001420 inlägg
#7

HURRA!!!
Det funkar! Sparade mig för många hundra manuella inmatningar. TACK! :)

------------------
www.moviemix.nu

123 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
120 ms — hämta tråd, inlägg och bilagor (db)