-
Gesamte Inhalte
341 -
Benutzer seit
-
Letzter Besuch
Inhaltstyp
Profile
Forum
Downloads
Kalender
Blogs
Shop
Alle Inhalte von Druid
-
Alle die es interessiert: Mit Statement 1 kriege ich alle Server, die in Ta_Server_1, aber nicht in ta_server_2 sind. (--> Kombinationsschlüssel aus servername und la) select ta_server_1.* from ta_server_1 left join ta_server_2 ON ((ta_server_1.servername = ta_server_2.servername) AND (ta_server_1.la = ta_server_2.la)) where (((ta_server_2.servername) Is Null) OR (ta_server_2.la Is Null)); Mit Statement 2 kriege ich das ganze andersherum: select ta_server_2.* from ta_server_2 left join ta_server_1 ON ((ta_server_2.servername = ta_server_1.servername) AND (ta_server_2.la = ta_server_1.la)) where (((ta_server_1.servername) Is Null) OR (ta_server_1.la Is Null)) Und mit dem letzten Statement kriege ich die Differenzen der Mengen la an einem Server aus beiden Tabellen!! select ta_server_1.Servername, ta_server_1.la, ta_server_1.menge, ta_server_2.menge from ta_server_1, ta_server_2 where ((ta_server_1.servername = ta_server_2.servername) AND (ta_server_1.la = ta_server_2.la) AND (ta_server_1.menge <> ta_server_2.menge)) alles getestet --> läuft und liefert die richtigen Werte. Danke für den Denkanstoß Greetz Druid :cool:
-
vom prinzip funktioniert es. Dann müsste ich doch mit folgendem Statement alle fehlenden Einträge bekommen: select ta_server_1.* from ta_server_1, ta_server_2 where (([ta_server_1].[servername] Not In (select ta_server_2.servername from ta_server_2)) wie kann ich obigen Code verändern, dass er mir Datensätze zurückgibt, die in Kombination aus servername und la in ta_server_2 nicht vorkommen? und mit folgendem Code müsste ich dann alle Differenzen bekommen? select ta_server_1.Servername, ta_server_1.la, ta_server_1.menge, ta_server_2.menge from ta_server_1, ta_server_2 where ta_server_1.servername = ta_server_2.servername AND ta_server_1.la = ta_server_2.la AND ta_server_1.menge <> ta_server_2.menge und dann nur noch per Schleife in die DB ta_delta schreiben: while rs.eof = false sSQL = "insert into ta_delta (servername, menge1, menge2) values ('" & _ "rs.fields(0).value & "', '" & rs.fields(1).value & ", " & rs.fields(2).value & ")" rs.movenext wend so müsste das ganze doch klappen, oder? Danke und Gruß Druid :cool:
-
die tabellen sind natürlich ein bisschen aufwändiger. Meine Primärschlüssel setzen sich aus Servername und Seriennummer zusammen.
-
Hallo Forum, etwas für Logik Tüftler: Ich habe in meiner Datenbank zwei Tabellen. Beide sind nach dem gleichen Schema aufgebaut: ta_server_1 und ta_server_2 --------------------------- servername (string) la (integer) Menge (double) Ich möchte die beiden Tabellen miteinander inhaltlich vergleichen. D.h. ich habe eine Menge von la an Servername x in ta_server_1 und eine Menge von la an Servername x in ta_server_2. Ich habe es bis jetzt so gemacht: dim arr_errors(1 to 100, 1 to 3) as string sSQL = "select * from ta_server_1" set qdf = db.createQueryDef("", sSQL) set rs_tabelle1 = qdf.createRecordSet sSQL = "select * from ta_server_2" set qdf = db.createQueryDef("", sSQL) set rs_tabelle2 = qdf.createRecordSet while rs_tabelle1.eof = false while rs_tabelle2.eof = false if rs_tabelle1.fields(0).value = rs_tabelle2.fields(0).value then if rs_tabelle1.fields(1).value = rs_tabelle2.fields(1).value then if rs_tabelle1.fields(2).value <> rs_tabelle2.fields(2).value then sSQL = "insert into ta_delta (server, Menge1, Menge2) values ('" & rs_Tabelle1.fields(0).value & "..." docmd.runSQL end if end if end if rs_tabelle2.movenext wend rs_tabelle1.movenext rs_tabelle2.movefirst wend Damit habe ich alle Inhalte der Tabelle1 mit der Tabelle2 verglichen. Es gibt nur noch ein paar Probleme: 1. Wie finde ich heraus, wenn ein Server, der in Tabelle1 ist, gar nicht in Tabelle2 ist? 2. Gibt es eine effizientere Methode so etwas zu machen??? (bei 3000 Datensätzen pro Tabelle geht meine Performance langsam in den Keller) Wäre super genial, wenn Ihr mir helfen könntet!!! Gruß Druid :cool:
-
Die Lösung ist folgendes SQL Statement: select distinctrow IBAno, iba_date, done from ta_iba iid darf man nicht mit rein nehmen, da sonst das distinct logischerweise keine Wirkung mehr hat. Greetz Druid :cool:
-
Hallo Forum, ich habe folgende Tabelle: iid / IBAno / iba_date / done ... iid ist primary key und autocount. IBAno ist Integer und kann gleiche Werte enthalten. Nun möchte ich mit einem SQL Befehl alle Datensätze auslesen, wobei er aber alle weglässt die bei IBAno den gleichen Wert stehen haben. Mit folgendem Befehl geht es leider nicht: select distinct iid, IBAno, iba_date, done from ta_iba Kann mir irgendjemand helfen? Danke und Gruß Druid :cool:
-
nein es ist eher ein Brummen... wieso?
-
Hallo, ich habe irgendwas an meinem Windows verstellt, weiß aber nicht was und nicht wie. Ich habe jetzt eine Taskleiste für Blinde mit übergroßen Buchstaben. Ich habe schon tausende Sachen ausprobiert, aber nichts hat funktioniert. kann mir jemand helfen??? Gruß
-
Das ist eine sehr gute Frage. Ich bin noch in der Arbeit. Werde mal schaun, wenn ich nach Hause komm. Glaub aber schon, dass das Signal offen ist. Eigentlich Blödsinn, wenn man genauer darüber nachdenkt ;o) Also denne.
-
Hallo Forum, ich habe meine Soundkarte mit meinem Verstärker meiner HiFi-Anlage verbunden. (Line-Out auf Chinch). Es funktioniert soweit auch alles super, ausser, dass ich ein ständiges Grundrauschen habe. Ich weiß nicht woran das liegt oder wie ich es abstellen kann!!! Hat jemand ne Idee? Denn bei leisen und langsamen Liedern überlagert das Rauschen das Lied.... Danke und Gruß Druid :hells:
-
Danke, das würde es tun, leider kostenpflichtig. naja, mal schaun, wenn es gar nicht anders geht.
-
ich hab zwar schon immer gewusst, dass VBA wohl der größte D**** ist, aber das man nicht mal Zellen in ner Listbox farbig gestalten kann, das ist ja wohl der Hammer ;o) Thx trotzdem Druid
-
Hallo Forum, ich habe ein Problem: Und zwar möchte ich den Hintergrund einer Zelle in einer Listbox via VBA mit einer Farbe versehen. Die komplette Listbox z.b. rot einzufärben ist kein Thema mit: lst_la_overview.Backcolor = RGB (255, 0, 0) Wenn ich allerdings das ganze mit einer Spalte oder Zelle machen will, funktioniert es nicht. Mein Code: lst_la_overview.Column(2).Backcolor = RGB(255,0,0) Kann mir jemand helfen oder weiß wie es geht?? Danke und Gruß Druid :schlaf:
-
Hi, danke, aber daran lag es nicht. Ich habe es gelöst. Und zwar benennt die 1 in der Klammer bei wkbXL1.Sheets(1) das Tabellenblatt. Bei mir heißen die Dinger aber nicht 1,2,3,.. sondern "Tabelle1", "Tabelle2",... also muss der Befehl richtig lauten: wkbXL1.Sheets("Tabelle1").Cells(iZeile,0) = trim(rs.fields(0).value) für alle, die das gleiche Problem haben :eek: Greetz Druid :cool:
-
Hi, ich habe folgendes Problem. Ich möchte mittels VBA Daten aus meiner Datenbank nach Excel exportieren. Da ich die Formatierung der Excel Datei aber zeitgleich anpassen muss kann ich das nicht über die DoCmd. TransferSpreadsheet - Methode machen. Ich hab folgenden Code geschrieben: Option Compare Database Option Explicit Public wkbXL1 As Workbook Public Function export(sSQL As String, is_type As Integer) Dim iZeile, iSpalte As Integer Dim i, j, k As Integer Dim sSQL_query As String Set wkbXL1 = Workbooks.Add With wkbXL1 .application.Visible = True .Parent.Windows(1).Visible = True End With iZeile = 1 sSQL_query = sSQL Call mdl_database.createSQLRecordset(sSQL_query) While rs.EOF = False wkbXL1.Sheets(1).Cells(iZeile, 0) = Trim(rs.Fields(0).Value) iZeile = iZeile + 1 rs.MoveNext Wend End Function Bei wkbXL1.Sheets(1).Cells(iZeile,0) = trim(rs.fields(0).value) bringt er folgende Fehlermeldung: Laufzeitfehler '1004': Anwendungs- oder objektdefinierter Fehler Kann mir einer sagen, warum Access diese Fehlermeldung bringt oder ob ich etwas falsch mache? Und wenn ja was???!!!??! Danke und Gruß Druid :cool:
-
Hi mittlerweile hab ich das Problem gelöst. Auf dem Mainboard war die AGP Pipe geplatzt. Ist natürlich blöd ;o) Schon steh ich aber vor dem nächsten. Ich hab mir ein neues Board geholt und eingebaut. Wenn ich den PC einschalte drehen sich die Lüfter nur 1/2 Umdrehung und dann passiert gar nichts mehr.... Ich schmeiß des Ding bald ausn Fenster.... *grrr* Greetz Druid :cool:
-
Hallo Forum, ich habe mir am Wochenende diverse PC-Komponenten gekauft, zusammengebaut und verflucht. Mein Motherboard hat einen AGP 8x Slot und ich habe eine MSI X5200LE Grafikkarte dazu, die ebenfalls 8x AGP unterstützt. Ich habe alles angeschlossen und verkabelt, doch der Bildschirm blieb dunkel. Alles andere geht. Man hört die Festplatte, den Lüfter, alles, aber die Grafikkarte will nicht.... *grrrr* und beim PC meines Bruders geht sie... Hat jemand ne Idee, woran das liegen könnte??? thx and greetz Druid :cool:
-
jo das ist gewollt.. wenn iCounter<>0 dann ist er ja schon einmal durchgelaufen, d.h. dass der Recordset ein gültiges befülltes Objekt enthält. Also muss ich nur aktiv werden wenn iCounter = 0 Greetz Druid :cool:
-
@Chiacamo: tja es ist schön, dass es bei dir funzt. Bei mir leider nicht Anbei die komplette Funktion: Public Function fuk_import_gcf_data(ByVal TabName As String, ByVal Filename As String, ByVal tabno As Integer, ByVal type_data As String) Dim iCounter As Integer Dim sSQL2 As String Dim dbs As DAO.Database Dim qdf As DAO.QueryDef Dim rs_temp_2 As DAO.Recordset Dim null_rs As Boolean Set dbs = CurrentDb If type_data = "ac" Then DoCmd.RunSQL ("drop table tempimport_gcf_ac") DoCmd.TransferSpreadsheet acImport, , TabName, Filename, True, "Assets!" sSQL = "select Name, [Cust# Order / CC_(Portfolio item)] from tempimport_gcf_ac where Cost_allocation_active = 'YES'" Call mdl_database.createSQLRecordset(sSQL) Do sSQL = "insert into ta_gcf_ac (co, server) values ('" & rs.Fields(1).Value & "', '" & rs.Fields(0).Value & "')" DoCmd.RunSQL (sSQL) rs.MoveNext Loop Until rs.EOF = True rs.Close DoCmd.RunSQL ("drop table tempimport_gcf_ac") DoCmd.TransferSpreadsheet acImport, , TabName, Filename, True, "DCI!" sSQL = "select Auftragsnummer, [Server-Name/LPAR], Leistungsart, [9 / 2004 - 2004-10-04] from tempimport_gcf_ac where Auftragsnummer<>NULL or Auftragsnummer<>0" Call mdl_database.createSQLRecordset(sSQL) Do Do If Right(rs.Fields(2).Value, 1) = "[" Then rs.Edit rs.Fields(2).Value = Left(rs.Fields(2).Value, Len(rs.Fields(2).Value) - 2) rs.update Exit Do End If rs.Edit rs.Fields(2).Value = Left(rs.Fields(2).Value, Len(rs.Fields(2).Value) - 1) rs.update Loop rs.MoveNext Loop Until rs.EOF = True rs.Close sSQL2 = "select server from ta_gcf_ac" Set qdf = dbs.CreateQueryDef("", sSQL2) Set rs_temp_2 = qdf.OpenRecordset Do sSQL = "select * from tempimport_gcf_ac where [Server-Name/LPAR] = '" & rs_temp_2.Fields(0).Value & "'" mdl_database.createSQLRecordset sSQL iCounter = 0 Do If iCounter = 0 Then On Error goto err_sub_start If Not IsNull(rs.Fields(5).Value) Then sSQL = "update ta_gcf_ac set la_short = '" & rs.Fields(3).Value & "', ammount = " & rs.Fields(5).Value & ", month = " & Month(Date) & ", year = " & Year(Date) & " where server = '" & rs_temp_2.Fields(0).Value & "'" Else sSQL = "update ta_gcf_ac set la_short = '" & rs.Fields(3).Value & "', ammount = 0, month = " & Month(Date) & ", year = " & Year(Date) & " where server = '" & rs_temp_2.Fields(0).Value & "'" End If Else If Not IsNull(rs.Fields(5).Value) Then sSQL = "insert into ta_gcf_ac (co, server, la_short, ammount, month, year) values ('" & rs.Fields(0).Value & "', '" & rs.Fields(2).Value & "', '" & rs.Fields(3).Value & "', " & rs.Fields(5).Value & ", " & Month(Date) & ", " & Year(Date) & ")" Else sSQL = "insert into ta_gcf_ac (co, server, la_short, ammount, month, year) values ('" & rs.Fields(0).Value & "', '" & rs.Fields(2).Value & "', '" & rs.Fields(3).Value & "', 0, " & Month(Date) & ", " & Year(Date) & ")" End If End If DoCmd.RunSQL sSQL iCounter = iCounter + 1 rs.MoveNext Loop Until rs.EOF = True err_sub_start: rs_temp_2.MoveNext iCounter = 0 Loop Until rs_temp_2.EOF = True rs.Close rs_temp_2.Close ElseIf type_data = "sap" Then ElseIf type_data = "bck" Then End If End Function @Peregrin: Die Einstellung ist auf "Bei nicht verarbeiteten Fehlern"! Daran liegt es also nicht. Greetz Druid :cool:
-
das werd ich dann wohl auch tun.. trotzdem danke für deine Hilfe... Gruß Druid :cool:
-
hab ich auch gemacht. Funktioniert leider immer noch nicht.. Der bleibt immer an der Stelle hängen, an der der Fehler erzeugt wird... Keine Ahnung... das komische ist in anderen Modulen funktioniert es einwandfrei, nur in dem ich es am dringendsten brauch, geht es nicht.. --> Murphy´s Law
-
er bleibt auch hier wieder bei err.raise(3021) hängen...
-
funktioniert nicht. der bleibt bei if not isnull(rs.fields(5).value) then hängen. Wenn ich die Fehlernummer im Direktfenster mit debug.print Err.Number ausgebe ist es die 3021. Aber er ignoriert mir total das on error resume next. on error resume next if not isnull(rs.fields(5).value) then if err.number <> 0 then msgbox err.number, vbokonly end if end if on error goto 0 I h*** VB!!! Greetz Druid :cool:
-
Ich bin der Meinung. Informatiker wird man nicht. Informatiker ist man. Man wird geboren und wenn einen die Eltern das erste mal anschauen und sich denken "Sch****, das war wohl nix" wird man Informatiker... Ich bin Informatiker geworden, weil keine Ahnung, ich einer bin. Man muss es in sich haben, es zu lieben, stundenlang in einen scheinenden Kasten zu glotzen und Quelcode zu analysieren. Wenn man dann noch die ersten Erfahrungen mit BASIC oder gar C macht und noch nicht ganz eingeschüchtert ist wird man Informatiker. Und daran sollte sich jeder halten ;o) Sonst könnte ja jeder kommen. Greetz Druid :cool: