| 

.NET C# Java Javascript Exception

2
Hallo an alle!

ich bin gerade am verzweifeln an Access und t-sql. Mein Access 2003 Frontend greift per odbc auf einen MS SQL Server 2005 zu. Auf dem SLQ Server habe ich folgende Tabelle:

CREATE TABLE [dbo].[Lieferschein](
[Creator] [nvarchar](50) COLLATE Latin1_General_CI_AS NOT NULL CONSTRAINT [DF_Lieferschein_Creator] DEFAULT (suser_sname()),
[Created] [datetime] NOT NULL CONSTRAINT [DF_Lieferschein_Created] DEFAULT (getdate()),
[Modificator] [nvarchar](50) COLLATE Latin1_General_CI_AS NOT NULL CONSTRAINT [DF_Lieferschein_Modificator] DEFAULT (suser_sname()),
[Modified] [datetime] NOT NULL CONSTRAINT [DF_Lieferschein_Modified] DEFAULT (getdate()),
[ID] [int] IDENTITY(1,1) NOT NULL,
[Nummer] [int] NOT NULL CONSTRAINT [DF_Lieferschein_Nummer] DEFAULT ((0)),
[AAID] [int] NOT NULL,
[QKAuftragID] [int] NOT NULL,
[Lieferdatum] [datetime] NOT NULL,
[LFNummer] [nvarchar](50) COLLATE Latin1_General_CI_AS NULL,
[LFverbunden_Timestamp] [datetime] NULL,
[LFverbundenUser] [nvarchar](50) COLLATE Latin1_General_CI_AS NULL,
[LiefLFD] [nvarchar](5) COLLATE Latin1_General_CI_AS NULL CONSTRAINT [DF_Lieferschein_LiefLFD] DEFAULT ((0)),
CONSTRAINT [PK_Lieferschein] PRIMARY KEY CLUSTERED
(
[ID] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]


Jetzt möchte ich zu dieser Tabelle eine Zeile hinzufügen. der VBA Code sieht folgendermaßen aus:

strSql = "insert into Lieferschein(Nummer, AAID, QKAuftragID, Lieferdatum, LiefLFD, LFNummer) values("
strSql = strSql + CStr(intNummer) + ", "
strSql = strSql + CStr(cboAA) + ", "
strSql = strSql + CStr(intQKAuftragID) + ", "
strSql = strSql + Format(Date, "\#yyyy-mm-dd\#") + ", "
strSql = strSql + " '" + CStr(intLFD) + "', "
strSql = strSql + " '" + strLFNummer + "')"
CurrentDb.Execute strSql, dbSeeChanges


Und der SQL-String sieht so aus:
insert into Lieferschein(Nummer, AAID, QKAuftragID, Lieferdatum, LiefLFD, LFNummer) values(1, 448, 2752, #2014-11-14#,  '1010',  'LFS-2014-1010-1')


Ich bekomme die blöde (und ich denke auch falsche) Fehlermeldung:

"ODBC: Einfügen in einer verknüpften Tabelle 'Lieferschein' fehlgeschlagen.
Fehler mein Konvertieren des nvarchar-Wertes '1010-1' in den int-Datentyp. (#245)"


Dieser Fehler ist erst aufgetreten, seit in in der Tabelle das Feld 'LiefLFD' eingefügt habe. So wie ich das sehe, muß dort garnichts konvertiert werden. Der Teilausdruck '1010-1' ist Teil eines nvarchars und die Spalte ist ebenfalls ein nvarchar.

Kann mir jemand einen Tipp geben? Ich bin am verzweifeln.
News:
14.11.2014
tschroeer 35 1 4
Mit nvarchar habe ich noch nicht gearbeitet, aber vielleicht liegt es daran, dass Du in ein Feld mit 5 Zeichen 6 Zeichen einfügen möchtest?
muffi 17.11.2014
"Access 2003": meine Beileid
mober 17.11.2014
1 Antwort
0
Ich glaube eher Du hast im Feld, QKAuftragID den Wert der genannt wird. Die Meldung sagt Dir das Du versucht einen illegalen Wert IN einen Integer zu wandeln. Dein einziges Feld Int Feld ist QKAuftragID wie es scheint. Wenn Du einfach die Werte prüfst, solltest Du die Ursache finden können.

strSql = strSql + CStr(intQKAuftragID) + ",
09.12.2014
Slashi 409 2 8

Stelle deine T-sql-Frage jetzt!