/ Forside / Teknologi / Udvikling / VB/Basic / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
VB/Basic
#NavnPoint
berpox 2425
pete 1435
CADmageren 1251
gibson 1230
Phylock 887
gandalf 836
AntonV 790
strarup 750
Benjamin... 700
10  tom.kise 610
[SQL] UPDATE af sammenkædet tabeller
Fra : Johnny Emde Jensen


Dato : 14-06-02 09:35

Hej NG


Jeg har i et VB6 projekt et mindre problem. Jeg har to tabeller (på SQL
server) der er forbundet med kaldet:

SELECT UDVHVDP1.IDENT AS UDHIDT, UDVLINP1.IDENT AS UDLIDT
FROM UDVHVDP1 LEFT JOIN UDVLINP1 ON ([UDVHVDP1].[KDBKR] =[UDVLINP1].[KDBKR])
AND (([UDVHVDP1].[FIRMA] =[UDVLINP1].[FIRMA]) AND ([UDVHVDP1].[OORDRE]
=[UDVLINP1].[OORDRE]))
WHERE UDVHVDP1.OORDRE BETWEEN x AND y

(hvor x og y er ordre numrer) - der ligger flere begrænsninger... hvor nogle
berører UDVHVDP1 og nogle UDVLINP1.

Jeg bruger så koden:

Set Rcd = New ADODB.Recordset
Rcd.Open SQL,CON
With Rcd
If .Eof = True And .Bof = True Then
Goto NoRecords
End IF
.MoveFirst
Do Until .Eof

!UDHIDT = "I"
!UDLIDT = "I"
.Update
.MoveNext
Loop
End With
NoRecords:
Rcd.Close

Jeg får returneret en fejl - noget om at der ikke er nok felt-referencer til
at udføre Update - kan dette løses, og/eller er der en der kan give et rent
SQL eksempel.

/Johnny




 
 
Krabsen (16-06-2002)
Kommentar
Fra : Krabsen


Dato : 16-06-02 19:06

Vel noget med, at dine joins tilsammen ikke er unikke, så der ikke er en
entydig reference tilbage til tabellerne. Check, om dine join-felter er
indekserede i begge tabeller - hvis der på alle felter er 'indekseret -
dubletter tilladt' tror jeg, at Access bliver forvirret, for hvilken record
peger vi lige på?

...og hvorfor lader du forresten ikke SQL foretage ændringen med en
opdateringsforespørgsel??


mvh
Krabsen




"Johnny Emde Jensen" <emde@emde.dk> skrev i en meddelelse
news:aec9ei$2hgt$1@news.cybercity.dk...
> Hej NG
>
>
> Jeg har i et VB6 projekt et mindre problem. Jeg har to tabeller (på SQL
> server) der er forbundet med kaldet:
>
> SELECT UDVHVDP1.IDENT AS UDHIDT, UDVLINP1.IDENT AS UDLIDT
> FROM UDVHVDP1 LEFT JOIN UDVLINP1 ON ([UDVHVDP1].[KDBKR]
=[UDVLINP1].[KDBKR])
> AND (([UDVHVDP1].[FIRMA] =[UDVLINP1].[FIRMA]) AND ([UDVHVDP1].[OORDRE]
> =[UDVLINP1].[OORDRE]))
> WHERE UDVHVDP1.OORDRE BETWEEN x AND y
>
> (hvor x og y er ordre numrer) - der ligger flere begrænsninger... hvor
nogle
> berører UDVHVDP1 og nogle UDVLINP1.
>
> Jeg bruger så koden:
>
> Set Rcd = New ADODB.Recordset
> Rcd.Open SQL,CON
> With Rcd
> If .Eof = True And .Bof = True Then
> Goto NoRecords
> End IF
> .MoveFirst
> Do Until .Eof
>
> !UDHIDT = "I"
> !UDLIDT = "I"
> .Update
> .MoveNext
> Loop
> End With
> NoRecords:
> Rcd.Close
>
> Jeg får returneret en fejl - noget om at der ikke er nok felt-referencer
til
> at udføre Update - kan dette løses, og/eller er der en der kan give et
rent
> SQL eksempel.
>
> /Johnny
>
>
>



Søg
Reklame
Statistik
Spørgsmål : 177552
Tips : 31968
Nyheder : 719565
Indlæg : 6408849
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste