Close
Duke shfaqur rezultatin -19 deri 0 prej 10
  1. #1
    i/e regjistruar
    Anėtarėsuar
    16-11-2005
    Vendndodhja
    Shqiperi, Kosove, Cameri
    Postime
    210

    Access - Futja automatike e rekordeve ne tabele

    Problemi qe kam per te zgjidhur eshte:

    Nje tabele ne Access ka si pjese te saj nje fushe e tipit numerik. Ne kete fushe ndodhen numrat nga 40000 deri ne 49999. Keto numra jane te futur ne menyre te vazhdueshme, me disa perjashtime te vogla. Psh pasi qe numrat jane te vazhdueshem njeri-pas tjetrit nga 4000 deri ne 40010 , rekordi me permbajtje 40011 mungon dhe pastaj vazhdon seria e numrave nga 40012 deri 41100, pastaj mungon 41101 e me radhe.
    Une dua qe te fus ne tabele rekordet e numrave qe mungojne. Nese do t'i kontrolloj me sy numrat qe mungojne e me pas te shtoj rekodre te rinj (New Record) per secilin prej tyre, do te duhej shume kohe dhe mund.
    A mund te behet futja e rekordeve per numrat qe mungojne ne menyre automatike?
    Shpresoj se do te marr pergjigje, dhe do te kursej shume mund.

  2. #2
    Programues Softueresh Maska e edspace
    Anėtarėsuar
    04-04-2002
    Vendndodhja
    Filadelfia, SHBA
    Postime
    2,573
    Pėrse duhet tė jenė tė vazhdueshėm numrat? Ē'tė keqe ka qė ka rreshta tė fshirė? Kjo ėshtė normale pėr databazat dhe s'ka gjė tė keqe tė vazhdosh me numra tė tjerė, 50000, 50001, 50002...etj.

    Tipi numerik ėshtė autonumber (dmth plotėsohet vetvetiu), number, apo text? A pėrdoret nė ndonjė tabelė tjetėr?

    Nėse kolona nuk pėrdoret nė tabela tė tjera, dhe numri ID nuk pėrdoret si referencė pėr njė rekord, atėherė mund ta ndryshosh strukturėn e tabelės duke e fshirė fushėn ID dhe duke e krijuar pėrsėri si autonumber.

    Nėse kolona ėshtė autonumber ose pėrdoret pėr tė lidhur disa tabela, access nuk tė lejon tė bėsh ndryshime. Nė kėtė rast, do tė duhej tė ktheje fushėn nga autonumber nė number dhe pastaj tė plotėsoje numrat qė mungojnė.

    Nuk ėshtė e vėshtirė tė shtosh rreshtat qė mungojnė nė mėnyrė automatike me njė program VBA, por kolona s'duhet tė jetė autonumber dhe nėse kolona pėrdoret pėr tė lidhur disa tabela, ID e rreshtit qė mungon duhet tė mungojė nė tė gjitha tabelat.
    Edi

  3. #3
    i/e regjistruar
    Anėtarėsuar
    16-11-2005
    Vendndodhja
    Shqiperi, Kosove, Cameri
    Postime
    210
    Ju falem nderit per reagimin. Personalisht nuk kam pregatitje per bazat e te dhenave. Ne kete fushe kam filluar te punoj pothuajse nga zero. Kam njohuri te pergjithshme nga gjuha e programimit C, Pascal, C++ si dhe programet zbatuese me te sakonshme Office etj..
    Po shpjegoj me konktretisht:
    Me duhet te bej nje baze te dhenash per Telekomin. Aty do te ruhen numrat telefonike, te zene me kontrate ose jo. Lidhjet e ēdo numri ne rrjet, zone, kopje zone etj.
    Deri tani kam bere nje tabele me afersisht 12,000 rekorde. Ēdo rekord ka numrin telefonik ne perdorim, si dhe karaktetistikat e rrjetit per kete numer . Numrat e palidhur nuk jane te futur ne tabele. Numrat e palidhur nuk kane kararteristika te rrjetit pra i kane Null.
    Duke futur edhe keta numra ne tabele, une do te kem te paraqitur te gjithe numrat qe ka telekomi.
    Tipi eshte Number, Long Integer. Intervali i vlerave eshte 40000 -49999, 50000-59999 etj.
    Kolona nuk perdoret ne tabela te tjera.

  4. #4
    i/e regjistruar
    Anėtarėsuar
    16-11-2005
    Vendndodhja
    Shqiperi, Kosove, Cameri
    Postime
    210
    Ajo qe me intereson eshte se a mund te behet futja automatike e rekordeve vetem nga Access-i. Nese jo, cfare keshillash me jepni.

  5. #5
    i/e regjistruar
    Anėtarėsuar
    17-11-2006
    Postime
    81
    Pershendetje Njuton.
    Njehere, shkrova nje program te vogel ne C++ i cili mund te lexonte automatikisht rekordet nga nje tabele Accesi (si dhe nga nje skedar Exceli), dhe me to plotesonte nje dokument Word-i, te cilin me pas e printonte per c'do rekord. E them kete per te treguar qe Acces, Excel, Word, etj. jane te "automatizueshem", pra duke i kontrulluar me ane te nje programi qe shkruan vete, mund te besh me to shume me teper se c'mund te beje nje perdorues me ane te "usser interface".
    Gjithesesi, shkrimi i ketij programi, nuk eshte aq i thjeshte sa per te ta ilustruar me nje mesazh.
    Ne vendin tend, une do ta shfrytezoje kete problem si nje pretekst per te mesuar "automatizimin e Office nga C++".
    Ndersa, nese "nuk do isha ne humor per te mesuar" dhe do me duhej te krijoja nje program teper efikas, une per vete do ta krijoja databeizin vete (pa perdorur Access, apo "driverat e databeizeve" qe ai perdor). Jo vetem qe kjo menyre ofron nje performance me te larte, por per me teper e ke gjithcka nen kontroll.

  6. #6
    Programues Softueresh Maska e edspace
    Anėtarėsuar
    04-04-2002
    Vendndodhja
    Filadelfia, SHBA
    Postime
    2,573
    Njuton,

    Gjeta kohėn pėr tė shkruajtur funksionin nė VBA pėr atė qė kėrkon tė bėsh.

    Nė skedarin e bashkėngjitur (plotesim_shembull_DB.zip) do gjesh njė databazė shembull me njė tabelė, modulėn e kodit VBA, dhe njė macro. Macro-ja thėrret funksionin ploteso("tabela1", "id", 40000, 50000) . Funksioni hap tabelėn "tabela1" dhe shton tė gjitha id qė mungojnė midis 40000 dhe 50000. "id" eshte emri i kolones sė tabelės qė do tė plotėsosh.

    Ky ėshtė kodi nė VBA:

    Kodi:
    ' Autori: Edi (edspace@comcast.net)
    ' Faqja: Forumi Shqiptar 
    
    '************************************************************************************************
    ' Ploteson kolonen me vlerat [fillim, fillim + 1, fillim + 2, ..., mbarim - 2, mbarim - 1, mbarim]
    ' Funksioni plotėson vetėm rreshtat qė nuk ekzistojnė; nuk bėn ndryshime nė rreshtat ekzistues.
    '
    ' Pėr ta pėrdorur, krijoni njė macro me veprimin (Action) RunCode dhe tek funksioni shkruani
    ' emrin e funksionit dhe argumentat.
    '
    ' P.Sh.:  ploteso ("tabela1","id", 40000, 50000)
    ' Shembulli do plotėsojė kolonėn "id" nė tabelėn "tabela1" me vlerat 40000 deri nė 50000.
    '
    '************************************************************************************************
    
    Option Compare Database
    
    Function ploteso(tabela As String, kolona As String, fillim As Long, mbarim As Long)
    
            On Error GoTo GABIM
            Dim db As Database
            Dim rst As Recordset
    
            Set db = CurrentDb()
            
            Dim sql As String
            
            ' zgjedhim vetem rekordet ku kolona eshte midis fillimit dhe mbarimit
            sql = "select " & kolona & _
                  " from " & tabela & _
                  " where " & kolona & " between " & fillim & " and " & mbarim & _
                  " order by " & kolona
            
            Set rst = db.OpenRecordset(sql)
                    
            ' per cdo vlere midis fillimit dhe mbarimit, kontrollojme nese
            ' ekziston ne databaze, dhe nese nuk e kziston, e shtojme
            
            Do While fillim <= mbarim
                If rst.EOF Then
                    Call shtoRekorde(rst, kolona, fillim, mbarim)
                    Exit Do
                ElseIf rst.Fields(kolona) > fillim Then
                    Call shtoRekorde(rst, kolona, fillim, rst.Fields(kolona) - 1)
                    fillim = rst.Fields(kolona)
                ElseIf rst.Fields(kolona) = fillim Then
                    rst.MoveNext
                    fillim = fillim + 1
                Else
                    rst.MoveNext
                End If
            Loop
            
            rst.Close
            MsgBox "Rekordet u plotėsuan me sukses!"
    DALJE:
            Set rst = Nothing
            Set db = Nothing
            Exit Function
    
    GABIM:
            MsgBox "Diēka shkoi gabim!"
            Resume DALJE
            
    End Function
    
    '********************************************************************************************************
    ' Ploteson kolonen ne rst me vlerat [fillim, fillim + 1, fillim + 2, ..., mbarim - 2, mbarim - 1, mbarim]
    ' Kujdes: Ky funksion i shton rreshtat edhe nese ekzistojne, kėshtu qė duhet patur kujdes me argumentat
    ' fillim...mbarim nėse nuk doni tė krijoni dy rreshta me tė njėjtėn vlerė
    '********************************************************************************************************
    
    Function shtoRekorde(rst As Recordset, kolona As String, fillim As Long, mbarim As Long)
        
        On Error GoTo GABIM
        For i = fillim To mbarim
            rst.AddNew
            rst.Fields(kolona) = i
            rst.Update
            Debug.Print ("Shtuam " & CStr(i))   ' printon rreshtat qe shtohet ne dritaren debug
        Next i
        Exit Function
        
    GABIM:
        MsgBox "Gabim nė shtimin e rreshtit " & CStr(i)
        
    End Function

    Nga testat qė bėra, jam i bindur se programi punon siē duhet, por pėr siguri, ruaj njė kopje rezervė tė databazės para se ta pėrdorėsh funksionin mė lart.
    Edi

  7. #7
    i/e regjistruar
    Anėtarėsuar
    16-11-2005
    Vendndodhja
    Shqiperi, Kosove, Cameri
    Postime
    210
    Te falenderoj shume edspace!
    Pas pak ditesh sa te ambientohem me VB dhe Access do bej prove kodin qe me dhe.
    Para duarve kam librin "Microsoft Access", Agni Dika. Ende nuk kam arrite tek Makrot, por sa te lexoj dicka nga Makrot them se do tia dal.
    Edhe nje here te falenderoj shume. Do te kthej pergjigje per rezultatet.
    Se fundi, a mund te me jepni disa keshilla per metoden e studimit te bazave te te dhenave? Sepse kjo nuk eshte fusha ime.

  8. #8
    Programues Softueresh Maska e edspace
    Anėtarėsuar
    04-04-2002
    Vendndodhja
    Filadelfia, SHBA
    Postime
    2,573
    Unė i kam mėsuar databazat duke lexuar shumė materiale nė Internet. Kėshtu si ty, kur mė ėshtė dashur tė punoj me to, kam kėrkuar pėr materiale nė Google dhe kam lexuar udhėzimet e tė tjerėve. Nė fillim u njoha me gjuhėn MySQL, pastaj MSSQL, pastaj ORACLE SQL. Tė gjitha kėto janė dialekte tė tė njėjtės gjuhė standarde SQL dhe po mėsove njėrėn, shumė lehtė e mėson dhe tjetrėn.

    Mė vonė i kam studiuar mė formalisht nė shkollė, duke filluar nga teoritė e bashkėsive, nėnbashkėsive, bashkimin dhe ndarjen e tyre, modelet relacionale tė tė dhėnave, normalizimin e tė dhėnave, etj. Teori tė tilla nuk janė tė domosdoshme pėr tė mirėmbajtur databazat, por tė ndihmojnė pėr t'i kuptuar mė mirė ato, sidomos nėse do tė duhet tė krijosh ato vetė.

    Nėse detyra jote ėshtė tė krijosh databazat, atėherė duhet tė paktėn tė mėsosh parimet e normalizimit. Kėto parime zbatohen pėr ēdo databazė, qoftė Access, Oracle, MySQL, etj. Pastaj tė duhet tė mėsosh tipet e tė dhėnave qė mund tė ruash nė databazė si vargjet (varchar, string), numrat (integer, longer, number), karakter (c), pohore/mohore (true/false). etj. Me ndryshime tė vogla, edhe kėto janė pak a shumė standarde pėr ēdo sistem databaze.

    Sigurisht qė nuk duhet harruar gjuha SQL qė pėrdorėt pėr tė komunikuar me databazat. Kjo gjuhė ėshtė e domosdoshme pėr ēdo njeri qė krijon dhe pėrdor databazat. Mund tė pėrdorėsh MS Acces edhe pa ditur SQL, por atėherė ke mėsuar vetėm MS Access, jo databazat.

    MS Access lejon pėrdoruesit tė punojnė me databazat pa qenė nevoja tė mėsojnė teoritė e pėrmendura mė lart. Biles edhe pa ditur SQL mund tė krijosh databaza. Databaza ėshtė vetėm njė nga funksionet e MS Access. Funkioni tjetėr mė i fuqishėm i MS Access ėshtė krijimi i ndėrfaqeve grafike me dritare e butona qė tė lejojnė tė krijosh njė program tė mirėfilltė pėr plotėsimin e tė dhėnave, redaktimin, shfletimin, ruajtjen, printimin etj. Pa njė ndėrfaqe tė tillė, e vetmja mundėsi pėr tė komunikuar me databazėn do ishte nėpėrmjet gjuhės SQL.

    Pėr te mėsuar Access, pėrdor librin qė ke nė gjuhėn shqipe, por nėse di anglisht, mund tė mėsosh shumė edhe nga dokumentacioni qė vjen me Access tek menyja help. Interneti ėshte njė librari e pafund ku mund tė gjesh databaza tė gatshme si shembuj, leksione, etj. Nė Internet mund tė gjesh shumė materiale nė Google Groups. Sigurisht qė mund tė pyesėsh edhe kėtu nė forum.
    Edi

  9. #9
    i/e regjistruar
    Anėtarėsuar
    16-11-2005
    Vendndodhja
    Shqiperi, Kosove, Cameri
    Postime
    210
    Pershendetje.
    Duke falenderuar 'edspace' per pergjigjen e pyetjes qe bera para do javesh, po ju jap edhe nje pyetje tjeter.
    Jemi ne nje report te aksesit. Reporti ka mbi 200 faqe. Ne krye te faqeve teke dua te shfaq (ne TextBox) numrin 49, ndersa ne krye te faqeve ēifte numrin 99.Tek Control Source e TextBoxit kam shkruar IIf([Page] Mod 2 = 1, 49, 99).
    Mirepo nuk me ben pune.
    Ju lutem me ndihmoni.

  10. #10
    Programues Softueresh Maska e edspace
    Anėtarėsuar
    04-04-2002
    Vendndodhja
    Filadelfia, SHBA
    Postime
    2,573
    Kodi qė ke shkruar ėshtė i saktė por duhet tė vendosėsh njė "=" pėrpara. Tek "control source" shkruaj =IIf([Page] Mod 2=1,49,99)

    Shiko shembullin e bashkėngjitur (cift_tek.zip) nėse ende nuk punon.
    Edi

Tema tė Ngjashme

  1. Import nga exceli n access, rast i vecante
    Nga nince_tutes nė forumin Arti i programimit
    Pėrgjigje: 4
    Postimi i Fundit: 28-04-2009, 10:05
  2. NBA, Basketbolli Amerikan - Sezoni 2006/2007
    Nga OO7 nė forumin Sporti nėpėr botė
    Pėrgjigje: 15
    Postimi i Fundit: 13-02-2007, 13:21
  3. Projekti amerikan pėr Lindjen e Mesme tė Madhe
    Nga ORIONI nė forumin Problemet ndėrkombėtare
    Pėrgjigje: 54
    Postimi i Fundit: 26-01-2005, 11:20
  4. Nga Access nė MySQL, fjalėkalimet, printimet
    Nga alditirona nė forumin Arti i programimit
    Pėrgjigje: 7
    Postimi i Fundit: 06-01-2005, 05:53
  5. Access - Dua te fus foto nga nje dosje ne Access
    Nga Delil nė forumin Arti i programimit
    Pėrgjigje: 5
    Postimi i Fundit: 14-08-2003, 07:44

Regullat e Postimit

  • Ju nuk mund tė hapni tema tė reja.
  • Ju nuk mund tė postoni nė tema.
  • Ju nuk mund tė bashkėngjitni skedarė.
  • Ju nuk mund tė ndryshoni postimet tuaja.
  •