Announcement

Collapse
No announcement yet.

UPDATE nach INNER JOIN

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • UPDATE nach INNER JOIN

    Zu diesem Thema sind schon einige Anfragen gestellt und beantwortet worden. Sie passen leider nicht für mein Problem.
    Ich verwende: Visual Basic 2010 + SQL-Server 2008
    Problem:
    Mit einem FillBy-Befehl und INNER JOIN gelingt es mir, die Spalte "Arztname" und "Arztvorname" in tabJahrestabelle2011 zu füllen mit Werten aus der tabArztliste:

    Code:
    SELECT tabJahrestabelle2011.TagNr, tabJahrestabelle2011.TagDesJahres, tabJahrestabelle2011.WTBez, tabJahrestabelle2011.ArztNr, tabArztliste.Arztname, 
                      tabArztliste.Arztvorname, tabJahrestabelle2011.FT_Ja_Nein, tabJahrestabelle2011.FTBez, tabJahrestabelle2011.Arztname AS Expr1, 
                      tabJahrestabelle2011.Arztvorname AS Expr2
    FROM     tabJahrestabelle2011 INNER JOIN
                      tabArztliste ON tabArztliste.ArztNr = tabJahrestabelle2011.ArztNr
    ORDER BY tabJahrestabelle2011.TagNr
    In tabJahrestabelle2011 ist der Primärschlüssel "tagNr", ein weiterer Schlüssel ist dort "ArztNr". In der tabArztliste ist der Primärschlüssel "ArztNr".
    Nun kann ich die so mit den Arztnamen und Arztvornamen aufgefüllte tabJahrestabelle aber nicht abspeichern. (Alles andere, was schon vorher drin stand, kann abgespeichert werden durch Klick auf Save des BindingNavigators.)
    Kann mir jemand freundlicherweise einen Rat geben?

  • #2
    Nun habe ich doch noch die Lösung gefunden dank nochmaligem, eingehendem Studium des Forums (speziell die Antwort von O.Helper vom 31.7.09 auf eine Frage von martin s vom gleichen Tag). Vielleicht interessiert es den einen oder anderen:
    Statt mit FillBy... die Tabelle 1 aus Werten der Tabelle 2 aufzufüllen, wird von Anfang an ein UPDATE-Befehl verwendet:
    Im Dataset muss es heissen:
    Code:
    UPDATE tabJahrestabelle2011
    SET tabJahrestabelle2011.Arztname = tabArztliste.Arztname, tabJahrestabelle2011.Arztvorname=tabArztliste.Arztvorname
    FROM     tabJahrestabelle2011 INNER JOIN
                      tabArztliste ON tabJahrestabelle2011.ArztNr = tabArztliste.ArztNr
    Um dann sofort die geladenen Werte auf dem Bildschirm zu sehen, muss man im Programmcode an den UPDATE-Query-Befehl noch einen Fill-Befehl anfügen:
    Code:
    Private Sub bnArztnamenEinfügen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bnArztnamenEinfügen.Click
            Me.TabJahrestabelle2011TableAdapter.Update(Me.DatasetBereitschaftsplan.tabJahrestabelle2011)
            Me.TabJahrestabelle2011TableAdapter.UpdateQueryNamenEinfügenVersion2()
            Me.TabJahrestabelle2011TableAdapter.Fill(Me.DatasetBereitschaftsplan.tabJahrestabelle2011)
        End Sub
    Es funktioniert! Danke dem Forum und seinen Betreuern! Gruss hubottom
    Zuletzt editiert von hubottom; 12.01.2011, 18:54.

    Comment

    Working...
    X