Zum Inhalt springen

Buell

Mitglieder
  • Gesamte Inhalte

    140
  • Benutzer seit

  • Letzter Besuch

Beiträge von Buell

  1. Also mal ganz blöd (ist mir auch schon mal passiert).

    Frischen Rechner geliefert bekommen und wollte BS und Software installieren. Zuerst aber mal BIOS und so checken. Mitten unter Durchforsten vom BIOS zerbröselte es die Grafik. Lauter Vierecke wie bei Peek und Poke unterm C64.

    Letzendlich war die Grafikkarte nicht ihren festen Sitz im AGP-Slot. Also die mal raus und wieder rein.

    Nur mal so in die andere Ecke gedacht.

    Buell

  2. Hi,

    ich hatte mal ein ähnliches Problem. Es musste in einer Spalte alles auf gleiche LEN gebracht werden. d.h. führende Nullen rein (war ne Art Postleitzahlenproblem).

    1. Funktion schreiben, die die Längendifferenz bildet:

    etwa so:

    Public Function min_max(cn As ADODB.Connection, Tabelle As String, Spalte As String) As Integer

    'Gibt die die Differenz zwischen der maximalen und minimalen vorkommenden Laenge der Wert

    'einer Spalte zurück

    Dim rs As New ADODB.Recordset

    Dim sql_string As String

    Dim maximum As Integer

    Dim minimum As Integer

    rs.ActiveConnection = cn

    sql_string = "SELECT MAX(LEN(" & Spalte & ")) as Laenge FROM " & Tabelle

    rs.Open sql_string

    rs.MoveFirst

    maximum = rs!Laenge

    rs.Close

    sql_string = "SELECT MIN(LEN(" & Spalte & ")) as Laenge from " & Tabelle

    rs.Open sql_string

    rs.MoveFirst

    minimum = rs!Laenge

    min_max = maximum - minimum

    rs.Close

    Set rs = Nothing

    End Function

    Im Hauptcode prüfen:

    wenn min_max < 0 dann schwerer Fehler ;-|

    wenn min_max = 0 dann nichts zu tun, alles gleich lang

    min_max = 1 dann:

    If differenz = 1 Then

    maximum = max_Feld(cn, cbo_Tabelle.Text, Spalte)

    sql_string = "UPDATE " & cbo_Tabelle.Text & " SET [" & Spalte & "] = '0'+[" & Spalte & "] WHERE (((LEN([" & Spalte & "]))<" & maximum & "))"

    cn.Execute sql_string

    cn.Close

    MsgBox ("Die Tabelle wurde aktualisiert!")

    Exit Sub

    End If

    min_max > 1: damals trat das nie auf und ich brauchte es auch nicht. Sicherheitshalber habe ich den Code mal "anprogrammiert", ob dieser auch genauso geht, wurde nie richtig getestet. Gedankenansatz:

    If differenz > 1 Then

    'MsgBox ("Noch nicht implementiert! Der Längenunterschied ist größer als 1!")

    'Der einfachste Weg wird wohl sein, solange Nullen anfügen, bis die Differenz eben 0 ist

    While differenz > 0

    maximum = max_Feld(cn, cbo_Tabelle.Text, Spalte)

    sql_string = "UPDATE " & cbo_Tabelle.Text & " SET [" & Spalte & "] = '0'+[" & Spalte & "] WHERE (((LEN([" & Spalte & "]))<" & maximum & "))"

    cn.Execute sql_string

    differenz = min_max(cn, cbo_Tabelle.Text, Spalte)

    Wend

    cn.Close

    MsgBox ("Die Tabelle wurde aktualisiert!")

    Exit Sub

    End If

    Hier wird noch eine Funktion max_Feld benutzt:

    Public Function max_Feld(cn As ADODB.Connection, Tabelle As String, Spalte As String) As Integer

    ' Ermittelt die maximale Laenge vorkommender Werte einer Spalte und gibt dies als Wert

    ' zurück

    Dim rs As New ADODB.Recordset

    Dim sql_string As String

    Dim maximum As Integer

    rs.ActiveConnection = cn

    sql_string = "SELECT MAX(LEN(" & Spalte & ")) as Laenge FROM " & Tabelle

    rs.Open sql_string

    rs.MoveFirst

    maximum = rs!Laenge

    max_Feld = maximum

    rs.Close

    Set rs = Nothing

    End Function

    cn ist immer eine Connection,

    cbo_Tabelle.Text war hier immer ein Tabellenname, Spalte ist selbstredend.

    Ich denke die SQL-Statements sind die wichtigen Methoden für Dich.

    So nun aber Schluß mit Codebeispielen hier. Fragen per EMail am besten. Sollte nur eine Anregung sein

    Grüße

    Buell

  3. Hi,

    also ich sehe da zwei Möglichkeiten, die aber u.U. mit Rechteproblemen behaftet sein könnten:

    1. Einrichten einer User_DSN (ODBC) und versuchst im letzten Schritt beim Einrichten den "Verbindungstest", oftmals ist mei MS-SQL die Beispieldatenbank Nordwind oder Northwind mit drauf (also auf die connecten).

    2. die Ereignisanzeige des Clients starten. Rechtklick auf "Ereignisanzeige (dieser Computer)", dann Verbindung zu anderem Computer herstellen (da eben den Servernamen eingeben)

    Tja, erstmal haste alle Ereignisse. Unter Ansicht den Filter auf SQL-Server setzen (bei der Ereigniskategorie Anwendungen).

    Hmm, das ist das einzige was mir mit Bordmitteln von W2K einfällt.

    serwaaas

    Buell

  4. Hi,

    also ich bin ein Fan von Kofler. Der schreibt bei Addison Wesley. Sein .net-Buch habe ich leider noch nicht in den Fingern gehabt, jedoch seit VB4 habe ich alle seine VB-Bücher und das mit der Datenbankprogrammierung. Ich kann seinen Schreibstil und Erfahrungsschatz nur empfehlen.

    ciao

    Buell

  5. Hi,

    vor einer Stunde habe ich eine 60er IBM nach Hause geschickt, Platte war 6 Monate im Einsatz (Sectorfehler und wahrscheinlich noch das Interface im A.)

    Ansonsten haben wir hier fünf 30er, eine 40er, zwei 20er, eine 10er IBM-IDE-Platten. Bei den 30ern standen bei drei schon Low-Level-Formatierungen an, dann gingen sie wieder.

    Ansonsten sage ich für meinen Teil. Die nächsten Platten werden nicht mehr von IBM sein, die sind dann WD oder Maxtor.

    greets

    Buell

  6. Lösung gefunden :)

    mit dem Imagecontrol und andere Width-Werte gehts nun optimal:

    Me.MSChart2.EditCopy

    Me.Image1.Picture = Clipboard.GetData(vbCFMetafile)

    If Me.Option1.Value = True Then

    Printer.Orientation = vbPRORLandscape

    Else

    Printer.Orientation = vbPRORPortrait

    End If

    Printer.ScaleMode = vbTwips

    co = Printer.ScaleWidth / Me.Image1.Width

    y = Printer.CurrentY

    Printer.PaintPicture Me.Image1.Picture, 0, y, Me.Image1.Width * co, Me.Image1.Height * co

    Printer.EndDoc

    ciao

    Buell

  7. Hi,

    ich habe hier ein MSChartControl, das einfach nur eine Jahresübersicht von Zahlen hat (12 Reihen, eine Spalte)

    wenn ich wie im VB6 Buch von Michael Kofler beschrieben das Ding drucken will, dann fehlt links und recht ein wenig, so das die Y-Achsenbeschriftung (also 100,200,300,400..) sowohl links auch rechts nicht komplett sind. Das MSChart-Control selbst unterstützt das drucken ja nicht, so dass der Umweg über das Clipboard und das Printer-Objekt gegangen werden muss:

    Clipboard.clear

    Dim border

    Me.MSChart2.EditCopy

    Set Picture.Picture = Clipboard.GetData(vbCFMetafile)

    Printer.ColorMode = 1

    Printer.Orientation = vbPRORLandscape

    border = Printer.ScaleWidth / 20

    Printer.PaintPicture Me.Picture1.Picture, border, _

    border,Printer.ScaleWidth - 2 * border, _

    Printer.ScaleHeight - 2 * border

    Printer.EndDoc

    Testweise habe ich mit den Border-Werten rumgespielt und auch ein anderes Picture-Control (von Protoview) verwendet. Dort war das gleiche Problem.

    Nun, mein Leben hängt vom Feature "Chart Drucken" nicht ab, doch ich hätts halt gerne eingebaut.

    Any Hints?

    thanx

    Buell

  8. klar ;)

    hast recht, aber ich bin da schon ein mal in dieser richtung auf die schnauze gefallen. waren allerdings andere dimensionen. 240 GB mit DLT sichern. damals bin ich halt auch ausgegangen 70GB steht drauf, 70 GB gehen auch drauf. so wars halt dann noch ned.

    nungut.

    für normale daten gehe mit 40% kompression aus und nicht 50 wie die hersteller. damit fährt man dann doch sicher.

    ciao

    Buell

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...