Avatar billede lionheart Nybegynder
26. maj 2009 - 14:14 Der er 6 kommentarer

blank combobox vil ikke gemmes på SQL

Hej,

Jeg har lavet en formular hvori der er nogle comboxe, som er tilknyttet til nogle tabeller. Før i tiden brugte jeg access databasen til at gemme dataerne på men her for nylig har jeg overført tabellerne til en SQL server.

Mit problem er, at når jeg så opretter en ny record og vil gemme den imens comboxene er blanke, så får jeg denne meddelelse:
ODBC - insert on a linked table ‘my_tablename' failed 

Når jeg så indsætter data i comboboxne, så vil den godt gemme den nye record? Tidligere var det muligt at beholde comboboxne blanke med access databasen men det virker ikke mere på SQL serveren?

På SQL serveren har jeg desuden i tabellen markeret et flueben til at den gerne må indeholde "Null" værdi men det hjælper ikke.

Håber virkelig nogen kan hjælpe mig for det er det sidste jeg mangler til at min applikation vil virke.
Avatar billede terry Ekspert
26. maj 2009 - 19:05 #1
How are you tying to save the record, in code or through the bound form?
Avatar billede lionheart Nybegynder
26. maj 2009 - 22:48 #2
Well the combobox is bounded to a table and I have a save button on the record, but I also have some vb code on the form - so a msgbox will pop-up and ask the user if the changed data or new data should be saved or not.
Avatar billede terry Ekspert
27. maj 2009 - 09:30 #3
The combobox is bound to a table where it gets its data from, but is the data on the form bound to a table so that when you change dat it gets written to the dB automatically (BOUND FORM). I would think it is.
Normally the value from the combo which gets written to the table will be the primary key field which normally is a long integer (number). Make sur ethat the field in the SQL server table is also a number on not text.
Avatar billede lionheart Nybegynder
28. maj 2009 - 09:07 #4
well i have some primary keys as nvarcher but it same on both tabels.
Avatar billede terry Ekspert
28. maj 2009 - 11:15 #5
its going to be difficult to find the problem without seeing the dB and as its using an SQL server that wont be easy.

If you havent made any changes to the Access dB other than move the tables to an SQL server. And as long as the data types are the same, tehn I dont see why it shouldnt work.
Avatar billede lionheart Nybegynder
28. maj 2009 - 12:35 #6
@terry
yeah its only with comboboxes it fucks it up.

Til dem der måske har den samme problem og får den samme fejl meddelelse op så har jeg pt. gjort det her istedet for:

I forms har jeg valgt before update event og indsat denne kode:

Private Sub Form_BeforeUpdate(Cancel As Integer)
Dim strMsg As String
    'Nyt
      If IsNull(Me.Type) Then
      Cancel = True
      strMsg = strMsg & "Du mangler at udfylde: Type." & vbCrLf
  End If
 
  If IsNull(Me.RumNr) Then
      Cancel = True
      strMsg = strMsg & "Du mangler at udfylde: RumNr." & vbCrLf
  End If
 
'etc.

If Cancel Then
      strMsg = strMsg & vbCrLf & "Udfyld formularen eller tryk på <Esc> for at fortryde."
      MsgBox strMsg, vbExclamation, "Invalid data"

End Sub

På den måde tvinger man brugeren til at udfylde comboboxsene før det kan gemmes og så undgår man fejlmeddelelsen. Men jeg ville nu gerne finde ud af hvorfor jeg ikke kan beholde comboboxne blanke på SQL serveren???? :(
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester