Keresés

Új hozzászólás Aktív témák

  • bepken

    veterán

    válasz martonx #2433 üzenetére

    köszi! :)

    suli kapcsán úgy is muszáj C-vel foglalkozzak...szóval lehet, hogy amúgy sem árt meg, ha inkább a C#-ba merülök el jobban.

    persze azzal is tisztában vagyok, hogy ehhez még rengeteg alapozásra van szükség, csak az irányra voltam kíváncsi.

  • bepken

    veterán

    írtátok korábban, hogy a VB már nem igazán érdemli meg, hogy jobban beleássa magát az ember...
    tehát az volna a kérdésem, hogy melyik az az alternatíva, amivel a VB-hez hasonlóan egyszerűbb programokat lehetne tervezni?

  • bepken

    veterán

    válasz martonx #2425 üzenetére

    igazad van :) sőt! igazából, amikor belefogtam ebbe a kis programba, még azt hittem, ennyit se kell majd a kóddal foglalkoznom... :D

    egy verziót már sikerült megcsinálnom a varázsló segítségével - tehát csak importáltam a táblát, betettem azt az egy szövegdobozt, majd megadtam neki a forrást. szóval valóban sokkal kényelmesebb volt na.

  • bepken

    veterán

    válasz cigam #2418 üzenetére

    ja hát én meg ~2 hete, szóval túl sokat én sem tudok segíteni, csak abban, amilyen problémával én is találkoztam eddig :DDD

    nálam a billentyű figyelés így néz ki:

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    KeyPreview = True

    ....

    tehát (az én olvasatomban legalábbis), ha az adott form aktív, akkor figyeli a leütött billentyűket

    illetve van egy "KeyPress" event is:

    Private Sub Form1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles Me.KeyPress

    If Asc(e.KeyChar) = 13 Then

    ....

    ez meg az Enter billentyűt várja (ASCII kód: 13)

    egyébként engem kifejezetten zavar, hogy sok dolgot a properties résznél és magában a kódban is meg lehet adni...pontosabban az, hogy a properties résznél már beállított értékek nem derülnek ki a kódból. vagy ezzel csak én vagyok így?

  • bepken

    veterán

    sziasztok!

    a következő problémám volna:
    teljesen elölről kezdtem a kis művemet, ezúttal külső adatbázisra hivatkozik és ez kellően meg is bonyolította számomra a dolgokat...

    így néz ki a kereső gomb click event:

    Private Sub btnFind_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnFind.Click

    'telefonszám szövegének formázása
    txtTelNumber.Text = ""
    txtTelNumber.Paste()
    txtTelNumber.Text = Replace(txtTelNumber.Text, " ", "")
    txtTelNumber.Text = Replace(txtTelNumber.Text, "/", "")
    txtTelNumber.Text = Replace(txtTelNumber.Text, "(", "")
    txtTelNumber.Text = Replace(txtTelNumber.Text, ")", "")
    txtTelNumber.Text = Replace(txtTelNumber.Text, "-", "")
    txtTelNumber.Text = Replace(txtTelNumber.Text, "+", "")

    If txtTelNumber.TextLength > 7 Then

    If txtTelNumber.Text.StartsWith("06") Then
    txtTelNumber.Text = txtTelNumber.Text.Substring(2)
    End If
    If txtTelNumber.Text.StartsWith("36") Then
    txtTelNumber.Text = txtTelNumber.Text.Substring(2)
    End If
    End If

    con.Open()
    sql = "SELECT [tel] from tel"
    da.Fill(ds, "tel")
    con.Close()

    For index = 0 To ds.Tables("tel").Rows.Count - 1
    Dim dt As DataTable
    dt = ds.Tables("tel")

    If txtTelNumber.Text = ds.Tables("tel").Rows(index).Item("tel") Then
    lbTelNum.Text = ds.Tables("tel").Rows(index).Item("tel")
    Else
    lbTelNum.Text = ""
    End If

    If lbTelNum.Text = "" Then
    lbTelNum.Text = ""
    lbExist.Text = ""
    Else
    Me.lbTelNum.Text = Me.lbTelNum.Text
    Me.lbExist.Text = "Már létezik!"
    End If
    Next
    End Sub

    a cél továbbra is az volna, hogy a textbox-ba beírt számot keresse meg az access táblában, majd ha megtalálja, azt jelezze.

    ez ugye most úgy néz ki, hogy ha a "txtTelNumber" mezőbe beírt szám benne van a táblában, annak értéke kerüljön át az "lbTelNum" mezőbe (és mellette az "lbExist" is írjon ki valamit) >> hogyha a "lbTelNum" üres, akkor egyszerűen nullázza ki ezt a két mezőt.

    a gyakorlatban ez működik is, de csak az első érték beadásakor....ha jól sejtem, az lehet a gond, hogy a következő kattintáskor már nem fut le a ciklus.
    próbáltam Else ágon újra beadni neki ugyanezt a ciklust, de csúnyán megakasztottam vele a gépet, úgyhogy valószínűnek tartom, hogy nem az lesz a megoldás... :D

    várom az ötleteket, véleményeket! :)

    _____________________________________________________

    szerk.:
    cigam!

    a Form_Load részhez írd be:
    KeyPreview = True

  • bepken

    veterán

    válasz martonx #2412 üzenetére

    köszi! utánaolvasok majd, hogyan kell használni - mert gyorsan rákeresve nem igazán fogtam fel a lényegét :)

    igazából még két dolgot kellene megoldanom a teljes lelki-béke eléréséhez:
    1. az fent említett karakter felülírást (ezt szerintem meg fogom találni guglival)
    2. ha a keresett érték szerepel a csatolt adatbázisban, azt jelezze. - találtam olyan kódot, amivel elértem, hogy msgbox-ként felugorjon a "hibaüzenet", de nekem label-be lenne ideális (ne kelljen feleslegesen ok gombra kattintgatni)...és valamiért ez nem akar összejönni.

  • bepken

    veterán

    válasz bepken #2405 üzenetére

    azt hiszem, a telefonszám "konvertálást" is sikerült megoldani, bár a gyakorlatban még csak pár példával próbálkoztam:

    Private Sub btnFind_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnFind.Click

    txtFind.Paste()
    txtFind.Text = Replace(txtFind.Text, " ", "")
    txtFind.Text = Replace(txtFind.Text, "/", "")
    txtFind.Text = Replace(txtFind.Text, "(", "")
    txtFind.Text = Replace(txtFind.Text, ")", "")
    txtFind.Text = Replace(txtFind.Text, "-", "")
    txtFind.Text = Replace(txtFind.Text, "+", "")

    If txtFind.TextLength > 7 Then

    If txtFind.Text.StartsWith("06") Then
    txtFind.Text = txtFind.Text.Substring(2)
    End If
    If txtFind.Text.StartsWith("36") Then
    txtFind.Text = txtFind.Text.Substring(2)
    End If

    End If

    TelBindingSource.Filter = "[tel] = '" & Me.txtFind.Text & " ' "
    End Sub

    így elviekben a vágólapra vett (legtöbbször keszekusza formátumú) számokat szépen "letisztítja" és ezután keres az adatbázisban

    mennyire elegáns ez így szerintetek?

    illetve arra nem jöttem még rá, hogyan lehetne megoldani, hogy a TextBox-ban található értéket minden alkalommal alapból felülírja.
    nem hozott megoldást az sem, ha beállítottam, hogy 7 karakter hosszú legyen a TextBox, mert ekkor alapból az első 7 karaktert kezdte vizsgálni, ami meg ugye esetemben nem igazán előnyös...

  • bepken

    veterán

    válasz bepken #2404 üzenetére

    rendben, az egyik kipiálva:

    a Form1 tulajdonságainál >>"KeyPreview = True"

    majd:
    Private Sub Form1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles Me.KeyPress

    If Asc(e.KeyChar) = 13 Then
    Me.dataBindingSource.Filter = "[number] = '" & Me.txtFind.Text & " ' "
    End If

    a másik kérdésemre viszont egyelőre nem találtam megoldást...

  • bepken

    veterán

    akkor ismét lenne pár kérdésem:

    - hogy lehet azt megoldani, hogy a TextBox-ba beírt szövegre az enter billentyűt lenyomva is rá tudjak keresni? gondolom a TextBox-hoz kell hozzárendelni ezt:

    Private Sub txtFind_Enter(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtFind.Enter

    End Sub

    valahogy így kell nekikezdeni? ha ide beírom ugyanazt a feltételt, amit a "Keres" gombnál működik, akkor sem akar összejönni valamiért...

    - a másik kérdésem pedig az volna, hogyan tudnám megoldani azt, hogy egy a vágólapra felvett számot adott formátumra "átalakítsa"?
    tehát mondjuk egy telefonszám esetében törölje a felesleges szóközöket vagy "/ - +" karaktereket

  • bepken

    veterán

    válasz martonx #2401 üzenetére

    próbáltam kicsit egyszerűsíteni - saját magamnak - mivel ez az első vb program, amivel próbálkoznék :)
    más kezéből egem is irritál az ilyen "felemás" munka, úgyhogy átérzem az ellenszenvedet ;]

    valami ötlet esetleg a kérdésemre? :)

  • bepken

    veterán

    sziasztok!

    a sokadik kezdő kérdésem lesz, szóval bocsi azoktól, akik korábban már nem egyet megválaszoltak más topic-ban :D

    egy egyszerű programot szeretnék, ami tartalmaz:
    - egy access adatbázist
    - egy "azonFind" TextBox-ot, ahová beillesztve egy azonosító számot
    - egy "btnFind" gombot, mely segítségével a TextBox-ba beírt azonosítószámot tudom kikeresni
    - egy "btnSave" gombot, mellyel hozzá lehet adni az adott azonosítószámot, hogyha még nincs benne az adatbázisban

    Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    Me.Munka1TableAdapter.Fill(Me.AzonositoDataSet.Munka1)

    End Sub

    Private Sub btnFind_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnFind.Click
    Me.Munka1BindingSource.Filter = "[Azonosítószám] = '" & Me.azonFind.Text & " ' "

    End Sub

    Private Sub btnSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSave.Click
    Me.Validate()
    Me.Munka1BindingSource.EndEdit()
    Me.TableAdapterManager.UpdateAll(Me.AzonositoDataSet)
    End Sub
    End Class

    eddig meg is vagyok - bár valamiért az adatbázist nem mindig akarja módosítani..... :D

    na de ezekhez az azonosítószámokhoz az adatbázisban tartozik egy checkbox is!
    szeretném, ha a program ezek értékeinek megfelelően (true/false) meghatározott szöveget adna vissza.

    egyébként az ilyesmit Label segítségével szokás kiíratni? (tehát amikor nem MsgBox féle ablakot szeretnénk, hanem csak egy szöveg változót valahova)

    remélem nem kérdeztem sok hülyeséget... :D

    köszi erőre is a segítséget!

Új hozzászólás Aktív témák

Hirdetés