/ 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
Run-time error '3263' i VBA Word mod Acces~
Fra : Steen H. Pedersen


Dato : 23-06-04 10:43

Jeg er gået lidt død i forbindelse med at jeg (endelig) har fået kontakt til
min database på min lokale maskine, men når jeg skal afvikle koden mod
databasen på serveren opstår ovenstående fejl ("Item cannot be found in the
collection corresponding to the requested name or ordinal").

Som det fremgår af nedenstående henter "stumpen" navn, adresse o.s.v på
baggrund af medlemmets CPR, og det hele går godt indtil adressen skal
hentes - fornavn og efternavn hentes men så opstår fejlen.

Det er en kopi af databasen jeg har hentet fra serveren og lagt på min egen
maskine, og der fungerer det hele 100% ?????????? hvof' de' ???
..........
Sub HentMedlem()
Dim strSQL As String
strSQL = "SELECT * FROM medl WHERE cprnr='" + inputModtager + "'"
Dim cnnModtager As ADODB.Connection, rsModtager As Recordset
Set cnnModtager = New ADODB.Connection
cnnModtager.ConnectionString = "Provider=Microsoft.jet.OLEDB.4.0;Data
Source=" _
+ database
cnnModtager.Open
svar = inputModtager
Set rsModtager = New ADODB.Recordset
rsModtager.Open strSQL, cnnModtager, adOpenStatic, adLockReadOnly
navn = rsModtager("fornavn") + " " + rsModtager("efternavn")
adresse = rsModtager("adresse")
postnr = rsModtager("postnr")
by = rsModtager("postadresse")
rsModtager.Close
cnnModtager.Close
End Sub
..........
(der er udeladt lidt fejlbehandling (modus11 kontrol o.s.v.))

Jeg håber nogen kan give et svar

Hilsen
Steen



 
 
Tomas Christiansen (23-06-2004)
Kommentar
Fra : Tomas Christiansen


Dato : 23-06-04 22:23

Steen H. Pedersen skrev:
> "Item cannot be found in the collection corresponding to the requested
> name or ordinal"

Det betyder at den nøgleværdi (en tekststreng) eller det heltal som du
angiver ikke eksisterer.

Efter at have kigget på din kode, ser det ud til at det måde være denne
linier, som fejler:
adresse = rsModtager("adresse")
Fejlbeskeden angiver altså at der ikke findes noget felt med navnet
"adresse" i din database!

Du kan checke hvilke felter som du har fået hentet ind i dit recordset, ved
at løbe alle felter igennem og udskrive deres navn, f.eks. noget i retning
af:
Dim Felt As ADODB.Field
For Each Felt In rsModtager.Fields
Debug.Print Felt.Name
Next

Lige en kommentar:
> strSQL = "SELECT * FROM medl WHERE cprnr='" + inputModtager + "'"
Pas på med at bruge + som strengkonkateneringsfunktion. Du kan komme ud i
nogle gevaldige problemer med flere (skjulte) konverteringer frem og tilbage
mellem strenge og tal, hvis et eller flere af strengene i virkelighden er
heltal eller kommatal.
Væn dig i stedet til altid at bruge &, for så gennemtvinger du automatisk en
konvertering af begge argumenter til strenge inden de forsøges konkateneret.

-------
Tomas


Søg
Reklame
Statistik
Spørgsmål : 177459
Tips : 31962
Nyheder : 719565
Indlæg : 6408176
Brugere : 218881

Månedens bedste
Årets bedste
Sidste års bedste