AccessTr.neT

Tam Versiyon: Müşteri No da alfabetik sıralama
Şu anda arşiv modunu görüntülemektesiniz. Tam versiyonu görüntülemek için buraya tıklayınız.
Sayfalar: 1 2 3
Selam
birtakım programlarda müşteri no,ürün no, vs kod verirken
rakamların önüne veya arkasına A-1558 , K-9898
gibi numaralandırmalar var

örnekte bir sıralama yaptım fakat alttaki gibi listeyi uzattığımda liste almıyor
nasıl bir yol bulmalıyım
saygılarımla

Private Sub Komut6_Click()
On Error GoTo Err_Komut6_Click
Dim Harfler As Variant
Harfler = Array( _
A, "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", _
AA, "AB", "AC", "AD", "AE", "AF", "AG", "AH", "AI", "AJ", "AK", "AL", "AM", "AN", "AO", "AP", "AQ", "AR", "AS", "AT", "AU", "AV", "AW", "AX", "AY", "AZ", _
BA, "BB", "BC", "BD", "BE", "BF", "BG", "BH", "BI", "BJ", "BK", "BL", "BM", "BN", "BO", "BP", "BQ", "BR", "BS", "BT", "BU", "BV", "BW", "BX", "BY", "BZ", _
CA, "CB", "CC", "CD", "CE", "CF", "CG", "CH", "CI", "CJ", "CK", "CL", "CM", "CN", "CO", "CP", "CQ", "CR", "CS", "CT", "CU", "CV", "CW", "CX", "CY", "CZ", _
DA, "DB", "DC", "DD", "DE", "DF", "DG", "DH", "DI", "DJ", "DK", "DL", "DM", "DN", "DO", "DP", "DQ", "DR", "DS", "DT", "DU", "DV", "DW", "DX", "DY", "DZ", _
EA, "EB", "EC", "ED", "EE", "EF", "EG", "EH", "EI", "EJ", "EK", "EL", "EM", "EN", "EO", "EP", "EQ", "ER", "ES", "ET", "EU", "EV", "EW", "EX", "EY", "EZ", _
FA, "FB", "FC", "FD", "FE", "FF", "FG", "FH", "FI", "FJ", "FK", "FL", "FM", "FN", "FO", "FP", "FQ", "FR", "FS", "FT", "FU", "FV", "FW", "FX", "FY", "FZ", _
GA, "GB", "GC", "GD", "GE", "GF", "GG", "GH", "GI", "GJ", "GK", "GL", "GM", "GN", "GO", "GP", "GQ", "GR", "GS", "GT", "GU", "GV", "GW", "GX", "GY", "GZ", _
HA, "HB", "HC", "HD", "HE", "HF", "HG", "HH", "HI", "HJ", "HK", "HL", "HM", "HN", "HO", "HP", "HQ", "HR", "HS", "HT", "HU", "HV", "HW", "HX", "HY", "HZ", _
IA, "IB", "IC", "ID", "IE", "IF", "IG", "IH", "II", "IJ", "IK", "IL", "IM", "IN", "IO", "IP", "IQ", "IR", "IS", "IT", "IU", "IV", "IW", "IX", "IY", "IZ", _
JA, "JB", "JC", "JD", "JE", "JF", "JG", "JH", "JI", "JJ", "JK", "JL", "JM", "JN", "JO", "JP", "JQ", "JR", "JS", "JT", "JU", "JV", "JW", "JX", "JY", "JZ", _
KA, "KB", "KC", "KD", "KE", "KF", "KG", "KH", "KI", "KJ", "KK", "KL", "KM", "KN", "KO", "KP", "KQ", "KR", "KS", "KT", "KU", "KV", "KW", "KX", "KY", "KZ", _
LA, "LB", "LC", "LD", "LE", "LF", "LG", "LH", "LI", "LJ", "LK", "LL", "LM", "LN", "LO", "LP", "LQ", "LR", "LS", "LT", "LU", "LV", "LW", "LX", "LY", "LZ", _
MA, "MB", "MC", "MD", "ME", "MF", "MG", "MH", "MI", "MJ", "MK", "ML", "MM", "MN", "MO", "MP", "MQ", "MR", "MS", "MT", "MU", "MV", "MW", "MX", "MY", "MZ", _
NA, "NB", "NC", "ND", "NE", "NF", "NG", "NH", "NI", "NJ", "NK", "NL", "NM", "NN", "NO", "NP", "NQ", "NR", "NS", "NT", "NU", "NV", "NW", "NX", "NY", "NZ", _
OA, "OB", "OC", "OD", "OE", "OF", "OG", "OH", "OI", "OJ", "OK", "OL", "OM", "ON", "OO", "OP", "OQ", "OR", "OS", "OT", "OU", "OV", "OW", "OX", "OY", "OZ", _
PA, "PB", "PC", "PD", "PE", "PF", "PG", "PH", "PI", "PJ", "PK", "PL", "PM", "PN", "PO", "PP", "PQ", "PR", "PS", "PT", "PU", "PV", "PW", "PX", "PY", "PZ", _
QA, "QB", "QC", "QD", "QE", "QF", "QG", "QH", "QI", "QJ", "QK", "QL", "QM", "QN", "QO", "QP", "QQ", "QR", "QS", "QT", "QU", "QV", "QW", "QX", "QY", "QZ", _
RA, "RB", "RC", "RD", "RE", "RF", "RG", "RH", "RI", "RJ", "RK", "RL", "RM", "RN", "RO", "RP", "RQ", "RR", "RS", "RT", "RU", "RV", "RW", "RX", "RY", "RZ", _
SA, "SB", "SC", "SD", "SE", "SF", "SG", "SH", "SI", "SJ", "SK", "SL", "SM", "SN", "SO", "SP", "SQ", "SR", "SS", "ST", "SU", "SV", "SW", "SX", "SY", "SZ", _
TA, "TB", "TC", "TD", "TE", "TF", "TG", "TH", "TI", "TJ", "TK", "TL", "TM", "TN", "TO", "TP", "TQ", "TR", "TS", "TT", "TU", "TV", "TW", "TX", "TY", "TZ", _
UA, "UB", "UC", "UD", "UE", "UF", "UG", "UH", "UI", "UJ", "UK", "UL", "UM", "UN", "UO", "UP", "UQ", "UR", "US", "UT", "UU", "UV", "UW", "UX", "UY", "UZ", _
VA, "VB", "VC", "VD", "VE", "VF", "VG", "VH", "VI", "VJ", "VK", "VL", "VM", "VN", "VO", "VP", "VQ", "VR", "VS", "VT", "VU", "VV", "VW", "VX", "VY", "VZ", _
WA, "WB", "WC", "WD", "WE", "WF", "WG", "WH", "WI", "WJ", "WK", "WL", "WM", "WN", "WO", "WP", "WQ", "WR", "WS", "WT", "WU", "WV", "WW", "WX", "WY", "WZ",
XA, "XB", "XC", "XD", "XE", "XF", "XG", "XH", "XI", "XJ", "XK", "XL", "XM", "XN", "XO", "XP", "XQ", "XR", "XS", "XT", "XU", "XV", "XW", "XX", "XY", "XZ")

Me.MüsteriNo = Me.MüsteriID

Dim A As Integer
A = Fix((Me.MüsteriID / Metin8))

Dim atama As Variant

atama = Format(MüsteriID, "0000")
Me.MüsteriNo = Harfler(A) & "-" & atama
Komut7_Click

Exit_Komut6_Click:
Exit Sub

Err_Komut6_Click:
MsgBox Err.Description
Resume Exit_Komut6_Click

End Sub
İnceleyin lütfen
sayın okileturc iki örnekte güzel fakat ikiside omaz diye düşünmekteyim
nedeni her yeni eklenen müşteriye bir otomatik Id verilmekte ben ıd inin formatını değiştirip
(ID+Harf+Format),(AL-0000984)
şeklinde bir görüntü oluşturmak istemiştim
yukarıdaki örnek bunu kısmen yapmaktadır fakat A ,Z ,WZ ye Kadar Sorun yok
sorun vb düzenleyicisinde WZ den sonra devamını ekleyemememdir
bunu bukadar uzun değilde kısaltabilirmiyim
saygılarımla
Kod verirken harfleri hangi mantığa göre vermek istiyorsunz ?
Harf veya Harf izesi Excel kolonlarında olduğu gibi sıralı mı olacak ?
Bir tur bittiği zaman tekrar "A" dan mı başlayacak ?
Mesela BL-000045 ile BK-000046 arasında nasıl bir fark veya benzerlik
vardır ?

Not: Eklediğiniz örnekte kod hatalı !? lütfen düzgün haliyle ( çalışır ) haliyle eklermisiniz
Sayın okileturc
A dan Z ye kadar
Z bittikten sonra
AA,AZ Bittikten sonra
BA,BZ vs böyle devam etmeli
bu nuda periyoda göre veya her 100 Id veye benim belirlediğim metin8 den sonra harf sıralaması değişmeli
periyoddan kastım ise A = Fix((Me.MüsteriID / Metin8))
kodlardada WZ ye kadar bir sorun yok sadece vb nin listesine sığmadığını göztermek isteyerek yazdım
yalın hali ektedir
saygılarımla
Sn. aydın

Problemi çözmek için birkaç metod denedim
1. Array zincirini başka tablodan almak
2. Excel veya txt dosyasından almak gibi


Dim harfler As Variant
harfler = Array(DLookup("kod", "kod"))
Me.MüsteriNo = Me.MüsteriID
Me.MüsteriNo = harfler(Fix((Me.MüsteriID / 5))) & "-" & Format(MüsteriID, "0000")

Ancak aldığım hata mesajını bir türlü
aşamadım.
"Subscript Out Of Range"
Sanırım bir şekilde eleman
sayısını belirtmek gerekiyor. Siz ve diğer
hocalar da bunu aşmaya çalışırsanız
sevinirim

Not: ben aramaya devam ediyorum ancak
sizin kodunuzu kontrl ettim, 1 tur tamamlanınca
yani array sonuna gelince ayni hatayı yine veriyor
yani kodunuz seriyi başa almak için yeterli değil
Sayfalar: 1 2 3