Zum Inhalt springen

Peregrin

Mitglieder
  • Gesamte Inhalte

    236
  • Benutzer seit

  • Letzter Besuch

Beiträge von Peregrin

  1. hi,

    welches dbms?

    wenn subselects erlaubt sind:

    insert into ziel_tab (select test1 from quell_tab)

    fuegt alle datensaetze von tabelle quell_tab in ziel_tab ein. (im subselect kann natuerlich auch noch eingeschraenkt werden.)

    danach bei bedarf loeschen von quell_tab

    hoffe, es hilft...

  2. hi,

    sorry, falls der vorschlag nicht dem niveau entspricht ;) (ich mag das aufzeichnen von makros eigentlich auch nicht) aber wenn ich mich schon mit vba herumschlage, dann benutze ich auch die mir angebotenen hilfsmittel. :D

    alternativ:

    zwei geschachtelte schleifen

    1) while (not file.eof)) (schleife ueber zeilen)

    2) zeile++

    3) ausgelesene zeile an den tabs trennen (array = split(zeile, vbtab))

    3) for i = lbound(array) to ubound(array) (schleife ueber spalten)

    4) spalte++

    5) array(spalte) in zelle schreiben

    nur: da sollte ein newbie hingefuehrt werden...

    ok, zugegeben, der makrorekorder ist nicht wirklich die loesung... ;)

  3. hi,

    dafuer wuerde ich anders vorgehen:

        Workbooks.OpenText Filename:="F:\X\X\input.txt", Origin:=xlWindows, _
    
            StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
    
            ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, Comma:=False _
    
            , Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1), Array(2, 1), _
    
            Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1))
    
    

    damit oeffnest du eine textdatei, deren werte durch tabulatoren in spalten unterteilt sind(parameter tab:=true). in diesem fall werden 6 spalten erwartet (parameter fieldinfo:=array(...))

    diese funktion ist in der hilfe recht gut beschrieben.

    ansonsten mal den makro-rekorder starten und eine solche datei oeffnen...

    weiter mit der bisherigen loesung:

    Worksheets("Tabelle1").Range( "A" & CStr(i) ).Value = Temp(i)

    mit dem blau gefaerbten text wird in der ersten zeile immer eine spalte 'draufaddiert', also A1 -> A2 -> A3 -> ...

    fuer das problem solltest du dir mal die funktionen 'offset' fuer das range-objekt ansehen. damit kannst du relativ zur aktuellen zelle andere zellen ansprechen. ich weiss da allerdings die syntax nicht mehr so genau...

    hoffe, es hilft...

  4. hi,

    moechtest du werte in der tabelle fuer datensaetze mit einem zeichen an einer bestimmten stelle in einem feld aendern?

    dann teile das doch auf in mehrere statements auf:

    update tabelle set feld1 = neu_wert where not substr(feld2, 5, 1) in ('1', '2')

    damit verlagerst du die logik aus dem sql-statement in dein programm.

    hoffe, es hilft...

  5. hi,

    Temp als array deklarieren und dimensionieren:

    Dim Temp(5) As String
    damit deklarierst du ein array mit der moeglichkeit, 5 werte zu speichern. mit
    Redim Preserve Temp(anzahl)

    dimensioniert du das array neu.

    dann kannst du mit dem schleifenzaehler das i-te element im array ansprechen...

    hoffe, es hilft

  6. hi,

    imho kann mysql keine subselect verarbeiten...

    siehe auch hier

    kann mich aber auch irren, dass es ab version 4 geht?

    loesung waere, die sql-select einzeln auszufuehren und das ergebnis des ex-subselects (" SELECT member FROM iland WHERE ozean='9' AND iland.gruppe='72' AND insel='2' ") im zweiten select (" SELECT farben FROM farbe WHERE member= 'das_ergebnis' ") in die bedingung einzubauen

    hoffe, es hilft...

  7. hi,

    im unload-ereignis des formulars kann der 'verursacher' des ereignisses ermittelst werden (parameter unloadmode):

    • vbFormControlMenu 0 The user chose the Close command from the Control menu on the form.
    • vbFormCode 1 The Unload statement is invoked from code.

    der erste fall waere dein fall, dass 'x' geklickt wurde...

    durch setzen des parameters cancel auf -1 wird das formular nicht entladen

    quelle: msdn

    z. b.

    
    Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
    
        If (UnloadMode = vbFormControlMenu) Then
    
            End ' user hat 'x' geklickt
    
        End If
    
    End Sub
    
    

    hoffe, es hilft

  8. hi,

    so wie ich das sehe, moechtest du einen modalen eingabedialog haben?

    aufruf:

    Call dlgModal.show(vbModal)

    wobei dlgModal der name des modalen dialoges ist.

    das programm haelt die ausfuehrung an dem aufruf dlgModal.show an und faehrt mit der naechten anweisung nach beenden des dialoges fort.

    um auf werte innerhalb des modalen dialoges zuzugreifen, den dialog nicht mit entladen, sondern nur 'verstecken' (mittels 'Me.Hide') und in dem aufrufenden formular die gewuenschten werte auslesen.

    hoffe, es hilft...

  9. hi,

    was mir dazu spontan einfaellt:

    was ist denn am arbeitsplatz, wo duch nette kolleginnen die motivation hochgehalten wird?? keine frauen am steuer -> keine frauen am arbeitsplatz -> weniger motivation der mitarbeiter -> schlechtere produktivitaet -> geringeres wirtschaftswachstum -> verarmung der gesellschaft -> ... ;-)

    nee, nee, lass die frauen mal schoen weiter autofahren...

  10. hi,

    ich kenne mich mit access im speziellen nicht aus, evtl gibt es fuer diese anforderung auch board-mittel von access...

    ein formular hat in access ein 'code-fenster' in dem du den vba-code schreiben kannst. in diesem machst du am besten die sql-abfrage und fuellst die controls (textfelder?) mit werten. zu jedem wert, der geaendert werden kann, speichertst du den wert in einer zwischenvariablen.

    beim klick auf den speichern-knopf (im ereignis button_click) vergleichst du dann die werte aus den controls mit den zwischengespeicherten.

    hoffe, es hilft...

    bei weiteren fragen einfach posten

  11. hi,

     
    
    Option Explicit
    
    Option Base 0
    
    Private aryEingabe() as String 
    
    
    Private Sub cmdOk_Click()
    
    Dim strText as String 
    
    Dim intCount as Integer 
    
    Dim intIndex as Integer
    
    
        intIndex = UBound(aryEingabe)
    
    
        If txtText1.Text <> "" then
    
            intIndex = intIndex + 1
    
            Redim Preserve aryEingabe(intIndex)
    
            aryEingabe(intIndex - 1)=txtText1.Text
    
        Else
    
            For intCount = LBound(aryEingabe) to Ubound(aryEingabe)
    
                strText = strText & "An Position " & CStr(intCount) & ": " & aryEingabe(intCount) & vbNewLine
    
            Next intCount
    
            MsgBox strText
    
        End If
    
    End sub
    
    
    

    imho ist fuer so etwas die collection schoener als ein array...

    hoffe es hilft

  12. hi,

    in kuerze:

    ein prozessorientierter projektbericht sollte den prozess der anwendungsentwicklung darstellen. d. h.: den verlauf des projektes (anforderungsanalyse, systementwurf, programmentwurf, programmierung, implementierung, test, wartung)

    wichtig ist hierbei, dass deutlich wird, welche schritte du unternommen hast, um erkannte probleme zu loesen (begruendung fuer deine entscheidungen)

    ansonsten mal googlen, was zu dem thema im netz steht.

    hoffe, es hilft

  13. hi,

    datensaetze in tabellen einfuegen mittels sql:

    insert into tab_name values('wert_spalte1', 'wert_spalte2', ...)
    werte mit ado auslesen:
    dim rs as adodb.recordset
    
    dim swert as string
    
    
    set rs = dbconnection.execute("select spalte1 from tab_name")
    
    if (not rs is nothing) then
    
        while (not rs.eof)
    
            ' so werden strings ausgelesen
    
            swert = trim(rs.fields.item("spalte1").value & "")
    
            ' eventuelles casten in numerische datentypen
    
        wend
    
        call rs.close
    
        set rs = nothing
    
    end if
    
    

    wer lesen kann, ist klar im vorteil ;):) (z. b. buecher...)

  14. hi,

    ich hoffe, dich richtig zu verstehen...

    du brauchst ein interface, welches eine bestimmte funktionalitaet beschreibt (z. b. anzeige eines charts). diese sollen dann alle anzeigen implementieren ??

    falls ja, dann kannst du dir ein klassenmodul schreiben, welches die oeffentlichen methoden enthaelt (z. b. show_chart()).

    in einem (oder mehreren) klassenmodul(en) kannst du dieses interface dann implementieren (implements class_interface). damit wirst du 'gezwungen' die im interface definierten methoden zu 'ueberschreiben'.

    somit kannst du alle 'implementierenden' klassenmodule ueber ihr interface class_interface ansprechen und die (unterschiedlich implementierten) methoden benutzen. (z. b. show_chart())

    hoffe geholfen zu haben (und dass es verstaendlich war)...

  15. hi,

    ungetested aus der erinnerung:

     
    
    dim i as integer
    
    dim path as string
    
    dim filename as string
    
    dim sep as string
    
    dim ret as string
    
    
    sep = "\" 
    
    path = getCompletePatch() 'hier den ausgelesenen pfadnamen merken
    
    filename = getFilename() 'hier den dateienemen speichern
    
    filename = sep & filename
    
    i = instrrev(path, sep, len(filename))
    
    ret = mid(path, i, len(path) - i - len(filename)
    
    

    sollte so oder so aehnlich gehen

    hoffe, es hilft...

  16. hi,

    ich wuerde das erd-modell in die doku mit aufnehmen, und schriftlich beschreiben, wie du dahin gekommen bist (evtl durch normalisierung). dann sollte man beschreiben, wie man von dem modell zu der physischen datenbank kommt (generieren des sql-scriptes, ausfuehren des scriptes)

    halt das beschreiben, was man gemacht hat...

    es gibt keine allgemeingueltige musterloesung dafuer.

    hoffe, es hilft...

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...